我有两个网站:https //:www.domain-only-uses-https.com和www.domain-uses-both-http-and-https.com
现在我在前者的页面中制作了2个ajax GET请求,后者是
https://www.domain-uses-both-http-and-https.com/some-path (using the HTTPS scheme)
另一个是
http://www.domain-uses-both-http-and-https.com/some-other-path (using the HTTP scheme)
我DID将“https //:www.domain-only-uses-https.com”设置为服务器“www.domain-uses-”中“Access-Control-Allow-Origin:”标题的值both-http-and-https.com“。
但现在似乎Chrome只允许请求1,但禁止请求2。
所以我的问题是:“Access-Control-Allow-Origin”标题是否区分HTTP和HTTPS? 希望我已经明确了......
答案 0 :(得分:28)
是,HTTP和HTTPS来源不同。
origin 是主机名,端口和计划的组合。
http://foo.example.com:8080/
^^^^ ^^^^^^^^^^^^^^^ ^^^^
|| || ||
scheme hostname port
如果并非所有这些字段在两个资源之间匹配,则资源来自不同的来源。因此,您必须明确指定资源是否可以使用HTTP方案从源访问,或者使用HTTPS方案来源。
有些浏览器只允许Access-Control-Allow-Origin
标头包含与每个响应一起发送的一个来源(或*
);但是,您的服务器可以检测到请求的Origin
标头,并在CORS响应中发送相同的来源。