关于跨域一直疑问重重,求详解

项目之前一直是时时上传服务器端,没有在本地 npm run dev,现在想要在本地启动,于是想利用脚手架中的 proxyTable解决跨域
项目实际请求地址是 http://……test……地址,项目本地启动在127.0.0.1端口80上,下面是 proxyTable的配置

image.png

在代码中配置请求的url;
实际请求的url应该是 http://……test……/veliky/user/checkUser?token=……
代理之后的url变成了 /api/veliky/user/checkUser?token=……
image.png

但是启动之前接口还是报错如下:
Access to XMLHttpRequest at 'http://……test……/veliky/user/checkUser' (redirected from 'http://127.0.0.1/api/veliky/user/checkUser?token=sqI……ZCTkjN7sDnr4……A3Zfll5I(OKy8p0-4gV9n(KlnIjyR0FFKlVKXTqwp-I)') from origin 'http://127.0.0.1' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
image.png

这句话的意思是 源地址 http://127.0.0.1 发来的 从http://127.0.0.1/api/veliky/user/checkUser?token=sqI……ZCTkjN7sDnr4……A3Zfll5I(OKy8p0-4gV9n(KlnIjyR0FFKlVKXTqwp-I) 重定向的请求http://……test……/veliky/user/checkUser 被同源策略拦截了 吗?

请问这样处理是否有问题? 是后台 veliky 服务没有开启允许跨域吗?
还有其他更好的解决跨域问题的方法吗?因为 后台服务实在太多了,还有webSocket需求配置。
谢谢!

阅读 2k
2 个回答

错误信息

Redirect is not allowed for a preflight request.

你这个接口产生了重定向。

Vue的反向代理解决的是开发环境下服务器不允许跨域导致本地开发用的域名localhost:8000请求服务器API失败的问题,编译部署到生产之后Vue应用和服务器API要在同一个域名下才可以

你这个情况不是 简单的 跨域代理问题处理, 目标服务器对于请求有准入限制,要突破这个限制,你需要跟目标服务器协商指定准入规则 (指定token或者token算法,传递验证参数的位置等)

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