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

后端对跨域已经做了处理,在 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 Jul 26, 2018 按理说 GET 不会触发预检啊,你确定 GET 的返回头里有 Access-Control-Allow-Origin ? |
4 WillieYang OP @olOwOlo 我看了一下,是有的 |
5 olOwOlo Jul 26, 2018 @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 Jul 26, 2018 简单请求是不需要发送 option 请求确认的,option 请求就是向服务端请求是否允许客户端做一些特殊操作,比如读取一些自定义头部之类的,这个时候 access-control-allow-origin 不能设置为*,要返回请求的 Origin 字段 |
8 charexcalibur Jul 26, 2018 |
9 bajie Dec 8, 2018 不知道解决了吗,我遇到的问题一毛一样,我是因为在头部自定义了一个 username |
10 liuYiDao May 7, 2019 我也遇到了,求解 |