1つ、1つを計画する
create-react-app
スキャフォールディング作成react
時間プロジェクトの使用では、開発中のインターフェイスアクセス時に、クロスドメインの問題が発生します。- 解決策は
package.json
、次のように次の構成ファイルを追加することです。"proxy": "http://localhost:5000" // 配置你要请求的服务器地址
- これは、低バージョン
create-react-app
が構成2.0
をpackage.json
増やすことができる時間よりも古い場合の唯一の方法であり、タイプにすることができます。proxy
proxy
object
2つ、2つを計画する
create-react-app
スキャフォールディング作成react
時間プロジェクトの使用では、開発中のインターフェイスアクセス時に、クロスドメインの問題が発生します。- 回避策は
package.json
、次の構成ファイルを追加して、複数のエージェントを構成することです。target
ターゲットサーバーですか;changeOrigin
デフォルトfalse
では、目標の元のホストヘッダーを変更する必要がありますURL
;secure
つまりhttps
、インターフェイスでパラメーターを構成する必要がある場合true
;pathRewrite
ソースなどの書き換え要求にアクセスapi
すると、要求は/
次のように解析されます:
"proxy": {
"/data": {
"target": "http://localhost",
"changeOrigin": true,
"pathRewrite": {
"^/api" : "/"}
},
"/rest": {
"target": "http://localhost/rest",
"changeOrigin": true,
"pathRewrite": {
"^/api" : "/"}
}
}
- 実行後、エラーが発生し、サポート
string
タイプのみがサポートされていないことを示し、object
低バージョンのみをサポートすることに同意しました。 - この点での解決策は、サービスをダウングレード、削除
node_module/react-scripts
、実行しnpm i [email protected] --save
、最後に再起動して、フロントエンドによるクロスドメインの問題を解決することです。
三、計画三
-
ダウンロードするには
http-proxy-middleware
、を使用http-proxy-middleware
して、npm i http-proxy-middleware --save
ダウンロードするコマンドを使用して、クロスドメインの問題を解決しますhttp-proxy-middleware
。 -
作成され
src/setupProxy.js
たコードは次のとおりです。const proxy = require("http-proxy-middleware"); module.exports = function (app) { // proxy第一个参数为要代理的路由 app.use(proxy("/data", { target: "http://localhost", //配置你要请求的服务器地址,代理后的请求网址 pathRewrite: { '^/data': ''}, //路径重写 changeOrigin: true, // 是否改变请求头 })) app.use(proxy("/rest", { target: "http://localhost/rest", pathRewrite: { '^/data': ''}, changeOrigin: true, })) };
-
npm run eject
いずれかのyarn eject
コマンド、そのことをreact
プロジェクト内のコンフィギュレーションファイルが公開しました。 -
公開された構成ファイルで、
start.js
次のように構成します。require('../src/setupProxy')(devServer);
-
行わ項目構成、それら自身のファイル構成に露出していない次のようにファイル、コードは次のとおりです。
webpack.dev.conf.js
devServer
webpack
create-react-app
eject
devServer: { // 配置webpack-dev-server, 在本地启动一个服务器运行 host: 'localhost', // 服务器的ip地址 希望服务器外可以访问就设置 0.0.0.0 port: 8088, // 端口 open: true, // 自动打开页面 historyApiFallback: true, proxy: { "/v1": { "target": "https://www.google.com/", "changeOrigin": true } } },