關於react跨域代理的問題,http-proxy-middleware代理失敗


經過一上午的時間,終於解決了跨域問題,為了避免大家和我犯同樣的錯誤,特意過來總結一下

使用react腳手架生成的項目,如果要實現跨域,版本低於2的,只需要在,根據自己的需求,直接

target后面是自己要跳轉的鏈接

如果你的腳手架版本較高,則需要在src的目錄下,創建一個setupProxy.js,然后里面直接

使用之前,記得下載

yarn add http-proxy-middleware

如果你啟動項目,出現了

When specified, "proxy" in package.json must be a string.
Instead, the type of "proxy" was "object".
Either remove "proxy" from package.json, or make it a string.

你的版本就是過高了,跨域不能直接在package.json,當然,如果你從頭到尾,只跨域一種,完全可以在package.json里面這樣設置

"proxy":"http://baidu.com"

這個寫法,無論版本高低,都可以使用。

但是這些都不是難倒我的,接下來是重點,我按照網上的步驟,甚至不惜去官網,靠蹩腳的英語和自動翻譯瞅了瞅,發現自己沒毛病,可是代理卻一直失敗,請求的接口還是localhost:3000,然后

哦,原來如此,問題在node上,小伙伴們注意了,如果一直失敗,請去package.json看一下自己的react和react-scripts版本。

我的react-scripts版本還停留在0.9.x,然而react卻是最新的,為什么呢,因為node版本低了,以至於你在創建腳手架時,最新的腳手架根本就無法下載,但是由於reac的版本很高,導致項目運行時,哪怕你的腳手架是個1都不如的渣渣,但是,對不起,請按照最高版本的步驟來,console小哥是這樣回答的,然后你會發現,按照最高版本來,console告訴你,親,不行的呢

我的node版本是8.9.0,react的2以上的版本,需求node9以上的,記住哦,react默認是最新的呢,好氣,去升級了,然后。。。

node升級的所有教程,都不是針對window系統的,幸好發現的早,但是有很多人踩坑了,所以提醒一下,對於window系統的用戶,你直接打開自己的黑窗口,輸入 where node 

然后去官網下載最新的node版本,安裝到出現的路徑中,node最新版本升級成功,也不需要去查卸載教程,一切做完,你就可以完成跨域了,對了,項目什么的,最好重新創建一個,因為你的腳手架升級了

希望我的回答,能幫助到你

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM