经过一上午的时间,终于解决了跨域问题,为了避免大家和我犯同样的错误,特意过来总结一下
使用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最新版本升级成功,也不需要去查卸载教程,一切做完,你就可以完成跨域了,对了,项目什么的,最好重新创建一个,因为你的脚手架升级了
希望我的回答,能帮助到你