写代码的时候遇到了一个问题,一个 vue 项目,使用 axios 进行 ajax 请求的时候,在 firefox 上面遇到了跨域问题。

2018-07-26 10:46:23 +08:00
 WillieYang

后端对跨域已经做了处理,在 chrome 上面可以完美跨域,但是在 firefox 上面的话,前端对后台先发送了一个 options 的预检请求,然后服务器端对预检请求做出的回应也是 200 OK,也返回了相应的 CORS 相关的头信息字段,问题是,之后的话,按理说浏览器会再向后台发送一个 get 的请求,从而得到相应的数据,就像在 chrome 上面一样,但是在 firefox 上面,就没有进一步的请求了,有遇到过相似问题的老哥吗?

3994 次点击
所在节点    前端开发
10 条回复
WillieYang
2018-07-26 10:50:31 +08:00
我在 firefox 上面,如果使用了那个 CORS 的插件的话,是可以进行跨域的,不知道是 axios 的原因还是 firefox 的原因,难道是前端在发送完预检请求并成功得到后台的 response 之后,再次发送的 http get request 被浏览器拦截了吗?感觉很奇怪的样子。
WillieYang
2018-07-26 10:58:26 +08:00
edge 也可以,就是 firefox 不行
olOwOlo
2018-07-26 11:03:43 +08:00
按理说 GET 不会触发预检啊,你确定 GET 的返回头里有 Access-Control-Allow-Origin ?
WillieYang
2018-07-26 11:10:22 +08:00
@olOwOlo 我看了一下,是有的
olOwOlo
2018-07-26 11:20:04 +08:00
WillieYang
2018-07-26 11:29:17 +08:00
@olOwOlo 自定义头部是什么意思啊?是 access-control-allow-origin 设置成一个特定的 url 吗?
zenxds
2018-07-26 13:06:24 +08:00
简单请求是不需要发送 option 请求确认的,option 请求就是向服务端请求是否允许客户端做一些特殊操作,比如读取一些自定义头部之类的,这个时候 access-control-allow-origin 不能设置为*,要返回请求的 Origin 字段
charexcalibur
2018-07-26 13:30:42 +08:00
bajie
2018-12-08 17:30:33 +08:00
不知道解决了吗,我遇到的问题一毛一样,我是因为在头部自定义了一个 username
liuYiDao
2019-05-07 10:23:19 +08:00
我也遇到了,求解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/474275

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX