偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

被 CORS 氣到想砸電腦?我用這一招,本地開(kāi)發(fā)一鍵解套

開(kāi)發(fā) 前端
剛接觸 API 的同學(xué),遇到 CORS 往往會(huì)被繞進(jìn)一個(gè)黑洞。 然而,只要你換個(gè)路徑:讓請(qǐng)求經(jīng)由代理從服務(wù)端發(fā)出,而不是從瀏覽器硬跨域,問(wèn)題就輕松化解。 這招,曾替我在上線(xiàn)前省下好幾天的來(lái)回扯皮。 希望也能幫到此刻的你。

CORS 報(bào)錯(cuò)

你在做一個(gè) React 或 Next.js 的前端。 你準(zhǔn)備從某個(gè) API 拉數(shù)據(jù)。 你手一抖,fetch 發(fā)出去,然后——

Access to fetch at 'https://api.example.com/data'
from origin 'http://localhost:3000' has been blocked
by CORS policy.

砰!CORS 報(bào)錯(cuò)直擊靈魂。 如果你經(jīng)歷過(guò),你就懂那種無(wú)力感。

?? 這玩意兒為啥老來(lái)找茬?

CORS(跨域資源共享)是瀏覽器內(nèi)置的安全機(jī)制:它會(huì)阻止localhost:3000 的前端代碼,直接去請(qǐng)求另一個(gè)來(lái)源(比如 api.example.com),除非對(duì)方服務(wù)端明確放行相應(yīng)的 CORS 頭。

然而,當(dāng)你不掌控后端時(shí),你就被動(dòng)了。 至少,我曾經(jīng)以為我被卡死了。

救我于水火的偏方:本地代理

與其苦苦央求后端改 CORS,不如在本地起一個(gè)代理,把前端請(qǐng)求“偽裝”成同源再轉(zhuǎn)發(fā)出去。因此,瀏覽器不攔你,你也不再被吊打。

操作就三步:

1)安裝 http-proxy-middleware
npm install http-proxy-middleware
2)Create React App 項(xiàng)目里,新建/編輯 src/setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function (app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'https://api.example.com',
      changeOrigin: true,
      pathRewrite: {
        '^/api': '', // 轉(zhuǎn)發(fā)前去掉 /api 前綴
      },
    })
  );
};
3)前端代碼里改成這樣:
fetch('/api/data') // 不再直打 https://api.example.com/data

搞定CORS 直接消失。

?? 加餐:Next.js 的寫(xiě)法在 Next.js 里,創(chuàng)建 next.config.js

module.exports = {
  async rewrites() {
    return [
      {
        source: '/api/:path*',
        destination: 'https://api.example.com/:path*',
      },
    ];
  },
};

此后你依然請(qǐng)求 /api/...,但 Next.js 會(huì)在服務(wù)端把請(qǐng)求代理到真實(shí)地址。于是,不需要?jiǎng)雍蠖?/span>,CORS 也不再作妖。

?? 為啥它就靈了?因?yàn)檎?qǐng)求不是由瀏覽器跨域發(fā)出,而是由(本地)服務(wù)端/開(kāi)發(fā)服務(wù)器代勞:

代理替你“出面”,再把結(jié)果轉(zhuǎn)交給前端。

瀏覽器的 CORS 策略因此不被觸發(fā)。

聽(tīng)起來(lái)“像開(kāi)了掛”,但這真的合法合規(guī)。

?? 我常用的工具清單

  • http-proxy-middleware(CRA 場(chǎng)景穩(wěn))
  • Next.js rewrites(服務(wù)端轉(zhuǎn)發(fā)更優(yōu)雅)
  • cors-anywhere(臨時(shí)測(cè)試、權(quán)衡使用)

最后

剛接觸 API 的同學(xué),遇到 CORS 往往會(huì)被繞進(jìn)一個(gè)黑洞。 然而,只要你換個(gè)路徑:讓請(qǐng)求經(jīng)由代理從服務(wù)端發(fā)出,而不是從瀏覽器硬跨域,問(wèn)題就輕松化解。 這招,曾替我在上線(xiàn)前省下好幾天的來(lái)回扯皮。 希望也能幫到此刻的你。

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2022-05-30 08:53:47

PycharmPython

2018-12-19 13:33:24

Safari瀏覽器搜索

2021-07-12 05:31:15

微信微信電腦版掃碼登錄

2025-04-15 08:25:00

網(wǎng)絡(luò)分層網(wǎng)絡(luò)分層模型網(wǎng)絡(luò)

2009-11-13 11:45:06

木馬病毒Windows

2019-01-28 05:48:15

5G無(wú)線(xiàn)網(wǎng)絡(luò)運(yùn)營(yíng)商

2021-02-19 09:01:37

Go項(xiàng)目模塊

2022-01-05 22:39:47

電腦磁盤(pán)空間

2025-02-21 09:30:00

DeepSeekAI

2013-05-03 11:21:27

2021-06-28 20:01:07

電腦性能Windows 7

2024-07-12 14:32:11

Linux系統(tǒng)

2013-07-30 11:24:33

SAP“簡(jiǎn)化IT 一招

2020-12-31 13:17:57

手機(jī)電腦多屏協(xié)同

2019-01-23 10:11:43

Python爬蟲(chóng)IP

2018-06-27 10:10:34

APP評(píng)分彈窗蘋(píng)果

2021-11-22 11:30:37

JavaScript代碼瀏覽器

2022-06-21 09:27:01

PythonFlaskREST API

2024-05-11 14:45:23

MAX基礎(chǔ)服務(wù)C端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)