我一直在努力满足CORS要求,在我的选项请求中将allowCredentials标志设置为true。我发现在响应头Access-Control-Allow-Origin
中需要精确匹配请求源的域(而不仅仅是外卡)。但是,我做了这个更改,但仍然收到此错误:
“XMLHttpRequest无法加载。当凭证标志为true时,不能在'Access-Control-Allow-Origin'标头中使用通配符'*'。因此不允许原点访问。”
以下是我的标题:
Response Headers
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:accept, content-type
Access-Control-Allow-Methods:HEAD,POST,GET,OPTIONS
Access-Control-Allow-Origin:http://<MyOrigin>
Access-Control-Max-Age:600
Allow:HEAD,POST,GET,OPTIONS
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:20
Content-Type:<MyContentType>
Date:Fri, 18 Sep 2015 16:19:30 GMT
Keep-Alive:timeout=5, max=99
Server:Apache
Vary:Accept-Encoding
Request Headers
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:<MyLanguages>
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
Host:<MyOrigin>
Origin:http://<MyOrigin>
Pragma:no-cache
Referer:http://<MyOrigin>?<MyRequest>
User-Agent:<MyUserAgent>
如您所见,我的Access-Control-Allow-Origin
不是通配符。我需要做些什么其他更改来阻止这些错误?
另外,我在Chrome和Safari中都有这个,所以我不认为这是浏览器特定的问题
答案 0 :(得分:0)
必须在对OPTIONS配对的POST响应中正确设置access-control-allow-origin标头,而不仅仅是对OPTIONS请求的响应。