ホームページ  >  記事  >  ウェブフロントエンド  >  クロスリアクションドメインの問題を解決する方法

クロスリアクションドメインの問題を解決する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-11-16 14:24:534526ブラウズ

反応クロスドメインの問題の解決策: まず [proxy": "http://localhost:8000] を [package.json] に追加し、次に、ページ /')] はプロキシのアドレスに転送されます。

クロスリアクションドメインの問題を解決する方法

クロスドメインの問題に対応するソリューション:

1. 最も単純な操作

"proxy": "http://localhost:8000"

## を package.json に追加し、 fetch('/api/userdata in your page /') をリクエストします。プロキシのアドレスに転送されます

つまり、実際のリクエストは http://0.0.2.89:7300/api/userdata/ であり、クロスドメインの問題は発生しません

ブラウザの観点から見ると、fetch('/api/userdata/') を送信しただけなので、クロスドメインの問題はありません

##2. 複数のプロキシを追加します

#package.jsonに追加

"proxy": {
"/api": {
"target": "http://localhost:8000",
"changeOrgin": true
},
"/app": {
"target": "http://localhost:8001",
"changeOrgin": true
}
},
使用方法

axios.post('/api/users').then(res =>{
console.log(res)
})

しかし、npm startを再実行すると、「proxy」の値を次のようにする必要があるというエラーが報告されます。オブジェクトではなく文字列型です。

その理由は、react-scripts モジュールのバージョンが高すぎるためです。元のディレクトリのnode_modules にあるreact-scripts フォルダーを削除し、より低いバージョンをインストールする必要があります。

npm install reverse-script@1.1 .1 --save

クロスドメインの問題は解決できるのは事実ですが、新しい問題が発生しました。プロジェクトでは sass を使用しました。react-scripts を次のように変更した後解析に関して、sass をサポートしたい場合は、node_modules/react-scripts/config で設定する必要がありますが、これはお勧めできません。

#3. 最良の推奨事項

http-proxy-middleware をダウンロード

npm i http-proxy-middleware --save

src/setupProxy.js を作成します

const proxy = require('http-proxy-middleware')
module.exports = function(app) {
// /api 表示代理路径
// target 表示目标服务器的地址
app.use(
proxy('/api', {
// http://localhost:4000/ 地址只是示例,实际地址以项目为准
target: 'http://localhost:4000',
// 跨域时一般都设置该值 为 true
changeOrigin: true,
// 重写接口路由
pathRewrite: {
'^/api': '' // 这样处理后,最终得到的接口路径为: http://localhost:8080/xxx
}
})
)
}

関連する無料学習の推奨事項:

JavaScript

(ビデオ)

以上がクロスリアクションドメインの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。