"Access-Control-Allow-Origin" header 是如何工作的

how "Access-Control-Allow-Origin" header works

我有一个关于 "Access-Control-Allow-Origin" header 的非常基本的问题。 假设我们有一个网站 "www.siteA.com" 将对另一个站点 "www.siteB.com" 执行 CORS,并且 siteB 上的 "Access-Control-Allow-Origin" 仅设置为 "www.siteC.com"。

当用户通过浏览器访问 siteA 并尝试从 siteB 访问内容时,响应会是什么样子?

请求是否会在服务器级别被阻止

它会发送 "Access-Control-Allow-Origin" header 设置为 "www.siteC.com" 的整个响应并会被用户的浏览器阻止吗? (我认为第一个是正确的)

When user via browser access siteA and it tries accessing content from siteB, what will the response look like?

与该网站的任何其他回复相同。

Will the request be blocked at the server level

没有。 CORS 是给浏览器的一条指令,它不应该对请求应用同源策略。服务器无法(可靠地)判断请求来自何处以在服务器级别阻止它。

will it send the entire response with "Access-Control-Allow-Origin" header set to "www.siteC.com" and will be blocked by user's browser?

是的。

will be blocked by user's browser?

是的,因为只有www.siteC.com域可以根据您的Access-Control-Allow-Originheader访问资源。他们会寄回;

Access-Control-Allow-Origin: http://www.siteC.com

您可以通过 this.

找到有关 Access-Control-Allow-Origin header 的问题的答案