ホームページ > 記事 > ウェブフロントエンド > クロスリアクションドメインの問題を解決する方法
反応クロスドメインの問題の解決策: まず [proxy": "http://localhost:8000] を [package.json] に追加し、次に、ページ /')] はプロキシのアドレスに転送されます。
クロスドメインの問題に対応するソリューション:
1. 最も単純な操作
"proxy": "http://localhost:8000"
##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 サイトの他の関連記事を参照してください。