配置了代理,为什么还是报跨域请求的错误啊???

这是我自己用nodejs开的服务,可以访问到:

clipboard.png
然后前端代理跨域:

clipboard.png
然后报错:

clipboard.png
然后我在server.js里又配置了这一坨

clipboard.png
还是报同样的错误(╥╯^╰╥)(╥╯^╰╥)

阅读 5.5k
4 个回答

你请求的url怎么写的,看这个样子是你url直接写了8081端口,或者代理没生效

你在8080端口访问8081端口的服务肯定跨域了。需要设置一些协议头 具体需要什么百度一下吧 设置一下这些协议头你就可以访问了

header('Access-Control-Allow-Origin: *');//允许所有来源访问
header('Access-Control-Allow-Methods: POST');//响应类型

总结一下怎么解决这个问题的:
1.请求的url写错了,应该直接写axios.get('/getRecommend);而不是axios.get('127.0.0.1:8081/getRecommend');
2.服务端的server.js要设置协议头部
// 跨域设置
app.all('*', function (req, res, next) {
res.send("推荐数据");
res.header("Access-Control-Allow-Credentials", true)
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Headers", "X-Requested-With")
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS")
res.header("X-Powered-By", ' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8")
next()
})
3.对于304错误,在请求的url里加个时间戳
axios.get('/getRencomment+time='+new Date().getTime());

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题