我一直试图向服务器发一个简单的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'
感谢任何帮助/建议。
答案 0 :(得分:3)
403响应状态表示服务器后端未配置为处理OPTIONS
请求的一般问题,而不仅仅是CORS预检OPTIONS
请求。
服务器必须以2xx成功状态(通常为200或204)响应OPTIONS
个请求。
如果服务器不这样做,那么它配置为发送的Access-Control-*
标头没有区别。配置服务器以正确的方式处理OPTIONS
请求 - 发送200或204成功消息 - 的答案取决于它运行的服务器软件