經過一上午的時間,終於解決了跨域問題,為了避免大家和我犯同樣的錯誤,特意過來總結一下
使用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最新版本升級成功,也不需要去查卸載教程,一切做完,你就可以完成跨域了,對了,項目什么的,最好重新創建一個,因為你的腳手架升級了
希望我的回答,能幫助到你