禁止预检403的响应

时间:2017-07-07 08:46:52

标签: ajax cors polymer polymer-2.x preflight

我一直试图向服务器发一个简单的Response headers帖子,但是它在预检电话中一直没有成功。对于我的生活,我无法弄清楚发生了什么,所有的CORS标题在服务器上似乎都是正确的。

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

SELECT COUNT (DISTINCT(user_id)) 
FROM fp left outer join sd ON fp.session_id = sd.session_id 
WHERE fp.license_key = 'license'  AND sd.device_hash = 'hash'

感谢任何帮助/建议。

1 个答案:

答案 0 :(得分:3)

403响应状态表示服务器后端未配置为处理OPTIONS请求的一般问题,而不仅仅是CORS预检OPTIONS请求。

服务器必须以2xx成功状态(通常为200或204)响应OPTIONS个请求。

如果服务器不这样做,那么它配置为发送的Access-Control-*标头没有区别。配置服务器以正确的方式处理OPTIONS请求 - 发送200或204成功消息 - 的答案取决于它运行的服务器软件