Axios二次封装后出现了跨域问题怎么解决??急!!!
直接使用可以请求到数据,服务端那边也配置了*。
以上是直接使用,没有对axios封装的。
封装后代码:
组件中使用:
报错信息:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
直接使用可以请求到数据,服务端那边也配置了*。
以上是直接使用,没有对axios封装的。
封装后代码:
组件中使用:
报错信息:
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
你的这个问题是由于Content-Type的值:application/json超出了简单请求允许的范围,导致请求变为了复杂请求,为此浏览器需要发送预检请求(option请求)去验证服务端是否允许该请求,它会带上以下信息:
如果想让服务端放行的话,那么需要在服务端代码里加上(nodeJs为例):
简单请求的定义:
axios封装的配置中,去掉绝对路径;
server: {
}
跨越跟前端没有关系,通常都是这么解决的:
前端:“兄弟,你接口跨域了,快瞅瞅”
后端:“奥,我看下,稍等”
two minutes later...
后端:“好了,你再试试”
前端:“嗯”
two seconds later...
前端:“可以了”
应该是content-type问题把
那就在
vue.config.js
里配置proxy
,线上再使用nginx
做下转发只要
method
是GET
、POST
、HEAD
,然后不要带自定义的header
,Content-Type
也不要超出:application/x-www-form-urlencoded
、multipart/form-data
、text/plain
这三种,基本上就可以认为是简单请求。改成application/json
就不符合简单请求的定义了,会多出preflight request
。具体可以参考跨源资源共享。
这里的话,后台接口加上
是不是加了后端cors里没配置的请求头啥的