【发布时间】:2017-12-11 11:53:41
【问题描述】:
我一直在尝试向服务器发送一个简单的iron-ajax 帖子,但它在预检调用中一直失败。对于我的生活,我无法弄清楚发生了什么,服务器上的所有 CORS 标头似乎都是正确的。
Response headers
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Methods:GET, POST, PUT, OPTIONS
Access-Control-Allow-Origin:*
cache-control:must-revalidate, private, no-cache, no-store, max-age=0
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:138
Content-Type:text/html
Request headers
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
请求确实是从 localhost 发出的,但我原以为 * 应该处理这个问题。
控制台中显示的错误是:
OPTIONS https://... 403 (Forbidden) 和
XMLHttpRequest cannot load https://.... Response for preflight has invalid HTTP status code 403
感谢任何帮助/建议。
【问题讨论】:
-
您在浏览器开发工具控制台中看到的确切错误消息是什么?考虑编辑/更新您的问题以包含该信息
-
OPTIONS https://... 403 (Forbidden)和XMLHttpRequest cannot load https://.... Response for preflight has invalid HTTP status code 403 -
所以是的,这表明服务器后端没有配置为处理 OPTIONS 请求,而不仅仅是预检 OPTIONS 请求的一般问题。服务器需要使用 2xx—200 或 204 响应 OPTIONS 请求。如果没有,那么您将其配置为发送什么 Access-Control-* 标头没有区别。配置服务器以正确方式处理 OPTIONS 请求(发送 200 或 204 成功消息)的答案取决于它运行的服务器软件
标签: ajax cors polymer polymer-2.x preflight