この問題は、母親のサポートの公式サイトからではないのは勿論である:ポータル
公式サイトには、3つのソリューションを提供します。最初の二つは、私は(私は無用だ主な理由)詳細には触れません。
公式サイト第三推奨される方法:
1、インストールに依存します:
- $ NPMは、httpプロキシ・ミドルウェアをインストールし、省
$#または
$糸は、http追加 -proxy-ミドルウェア
2、「SRC」フォルダに新しい「setupProxy.js」ファイル。そして、ネット公式の推奨設定〜
理論的には、正しいパスに完成新しいsetupProxy.jsは、あなたはそれの上にコピーされたこのコードの公式ウェブサイトを低くする必要があります。
何もかもが完璧です〜
構成コードの後に再起動することを私たちは皆知っています。
しかし、コードが完了すると、徐々にビルドで、私は徐々に固化笑顔:::
黒と赤のエラーの黒と赤、吸うために探して!!!
「プロキシAはfuncitonされていない面白い私のため???」???
払拭涙薄い材料、依存性から導入されたプロキシが、彼は関数ではありませんと言って呼び出した後、機能を実行します。
唯一の非常に少ないです真実はそう(突然〜論理的な推論の能力が必要とされて、ああ、探偵のためのプログラマーを見つけます。) :
1、または従属失敗プロキシモジュールの導入[排除ので、報告されていないエラーを導入]
その理由は、インストールしていない依存プロセスであり、
原因2がインストールされていますが、間違ったパスが導入され、
2、またはプロキシは、実際に機能するが、他のデータ・タイプではありません。
プロキシを印刷、私は本当に関数ではないことがわかりました。しかし、オブジェクト:
それは初期の公式サイトのデモで書かれていてもよい、プロキシこのプラグインが変更されましたか?Nazanも変更します!
食事操作、ようにコードを変更します。
既然导出的对象里createProxyMiddleware是个函数,那就用这个函数调用不就得了。
黑猫白猫,抓住老鼠就是个好猫!
再次运行,果然不报这个错了。
但是运行页面,报代理的地址404。
于是我们继续将代码修改如下:
1、代理处修改
1 const proxy = require('http-proxy-middleware'); 2 module.exports = function(app) { 3 app.use( 4 '/api', 5 proxy.createProxyMiddleware({ 6 target: 'https://api.seniverse.com/', 7 changeOrigin: true, 8 pathRewrite: { 9 '^/api': '' 10 } 11 }) 12 ); 13 };
加了第8-10行。这个“pathRewrite”网上有很多教程,直接百度这个关键词即可。
2、接口地址修改(urls.js)
1 export default { 2 my_application_list: '/api/myApplication/lujing?name=哈哈哈,注意前边的斜杠api啊' 3 }
⚠️这里注意地址前边能被正则匹配到的"/api"关键字,才会被重命名为“https://api.seniverse.com/”。
也就是才能代理、注意一定要写哦!
3、最后,接口请求即可:
import axios from 'axios' import urls from "../apis/urls"; ... ... componentDidMount(){ axios.get(urls.my_application_list) .then(function (response) { console.log(response) }) .catch(function (error) { console.log(error); }) }
这次是真的完美实现react中的跨域代理了~
2020-02-22 00:55:00