后端对跨域已经做了处理,在 chrome 上面可以完美跨域,但是在 firefox 上面的话,前端对后台先发送了一个 options 的预检请求,然后服务器端对预检请求做出的回应也是 200 OK,也返回了相应的 CORS 相关的头信息字段,问题是,之后的话,按理说浏览器会再向后台发送一个 get 的请求,从而得到相应的数据,就像在 chrome 上面一样,但是在 firefox 上面,就没有进一步的请求了,有遇到过相似问题的老哥吗?
1
WillieYang OP 我在 firefox 上面,如果使用了那个 CORS 的插件的话,是可以进行跨域的,不知道是 axios 的原因还是 firefox 的原因,难道是前端在发送完预检请求并成功得到后台的 response 之后,再次发送的 http get request 被浏览器拦截了吗?感觉很奇怪的样子。
|
2
WillieYang OP edge 也可以,就是 firefox 不行
|
3
olOwOlo 2018-07-26 11:03:43 +08:00
按理说 GET 不会触发预检啊,你确定 GET 的返回头里有 Access-Control-Allow-Origin ?
|
4
WillieYang OP @olOwOlo 我看了一下,是有的
|
5
olOwOlo 2018-07-26 11:20:04 +08:00
@WillieYang 是不是自定义了头部?,看看 MDN https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
|
6
WillieYang OP @olOwOlo 自定义头部是什么意思啊?是 access-control-allow-origin 设置成一个特定的 url 吗?
|
7
zenxds 2018-07-26 13:06:24 +08:00
简单请求是不需要发送 option 请求确认的,option 请求就是向服务端请求是否允许客户端做一些特殊操作,比如读取一些自定义头部之类的,这个时候 access-control-allow-origin 不能设置为*,要返回请求的 Origin 字段
|
8
charexcalibur 2018-07-26 13:30:42 +08:00
|
9
bajie 2018-12-08 17:30:33 +08:00
不知道解决了吗,我遇到的问题一毛一样,我是因为在头部自定义了一个 username
|
10
liuYiDao 2019-05-07 10:23:19 +08:00
我也遇到了,求解
|