CORS - 即使在成功的 OPTIONS 响应之后,Firefox 也不会发送 API 调用

Posted

技术标签:

【中文标题】CORS - 即使在成功的 OPTIONS 响应之后,Firefox 也不会发送 API 调用【英文标题】:CORS - Firefox doesn't send API call even after successful OPTIONS response 【发布时间】:2013-10-09 10:21:33 【问题描述】:

这是我尝试调用的经过身份验证的 API。 我可以看到 OPTIONs 调用返回了 200 OK 和正确的响应标头,但 Firefox 仍然没有发送 API 调用,在 Chrome 上完美运行......任何想法

下面隐藏了一些值..

响应标头 HTTP/1.1 200 正常 访问控制允许来源:* 访问控制允许方法:[POST,GET] 访问控制允许标头:授权 日期:2013 年 10 月 2 日,星期三 20:52:02 GMT 服务器:Mashery 代理内容长度:0

请求标头 选项 /hello HTTP/1.1 主持人:隐藏 用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0 接受:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 接受语言:en-US,en;q=0.5 接受编码:gzip、deflate 来源:隐藏 访问控制请求方法:GET 访问控制请求标头:授权 连接:保持活动

【问题讨论】:

【参考方案1】:

为什么响应方法在方括号内?它们应该是一个逗号分隔的列表。

【讨论】:

将尝试使用 fiddler 之类的工具并更改响应并在有效时进行更新。谢谢【参考方案2】:

在让 Mashery 处理 CORS 请求时,我在使用 Firefox 时遇到了同样的问题。我的建议是关闭 Mashery 中的 CORS 支持,让您的服务器处理这一切。

【讨论】:

以上是关于CORS - 即使在成功的 OPTIONS 响应之后,Firefox 也不会发送 API 调用的主要内容,如果未能解决你的问题,请参考以下文章

使用 DELETE 获取 api 问题 - 即使 cors 很好,也会更改 OPTIONS

CORS 因请求而失败,带有 OPTIONS(状态为 0 的响应)

AWS Api Gateway 仅在 OPTIONS 调用时不响应 CORS 标头

CORS:在成功的 OPTIONS 请求后,Firefox 不发送 POST 请求......适用于 Chrome 和 IE

CORS:成功 OPTIONS 请求后,Firefox 不发送 POST 请求……在 Chrome 中有效

401 响应 CORS preflight OPTIONS 请求到 Spring Boot 服务器