当前位置 : 主页 > 网页制作 > React >

关于react跨域代理的问题,http-proxy-middleware代理失败

来源:互联网 收集:自由互联 发布时间:2021-06-15
经过一上午的时间,终于解决了跨域问题,为了避免大家和我犯同样的错误,特意过来总结一下 使用react脚手架生成的项目,如果要实现跨域,版本低于2的,只需要在,根据自己的需求

经过一上午的时间,终于解决了跨域问题,为了避免大家和我犯同样的错误,特意过来总结一下

使用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最新版本升级成功,也不需要去查卸载教程,一切做完,你就可以完成跨域了,对了,项目什么的,最好重新创建一个,因为你的脚手架升级了

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

网友评论