原产地规范表示可以将Origin头设置为"null“。这通常是在请求来自用户计算机上的文件而不是来自托管的网页时完成的。规范还指出,如果请求来自“对隐私敏感的”上下文,则原产地可能为空。
我的问题是:什么是“对隐私敏感的”上下文,是否有任何浏览器显示这种行为?
以下是“原产地规范”的完整措辞:
每当用户代理从“对隐私敏感的”上下文发出HTTP请求时,用户代理必须在字段中发送值"null“。 注意:本文档没有定义对隐私敏感的上下文的概念。生成HTTP请求的应用程序可以将上下文指定为对隐私敏感的上下文,以便对用户代理如何生成原产地标头字段施加限制。
发布于 2014-03-25 04:17:59
我终于想出了答案。至少还有另外一种情况,即Origin头可能为"null“。在CORS请求期间遵循重定向时,如果请求被重定向到不同服务器上的URL,则Origin头将更改为"null“。我认为这是一个“对隐私敏感的上下文”,因为浏览器不希望将原始源泄漏到新服务器,因为客户端可能一开始就不打算向新服务器发出请求。
发布于 2017-04-18 00:03:48
检查这里:https://bugs.chromium.org/p/chromium/issues/detail?id=154967
由strobe@google.com
此行为实际上在规范1中。参见第7.1.7节第6步.
不幸的是,传输字符串"null“的惯例使得它看起来像是一个bug;我自己也这样认为,直到我找到了这个:)
我们也许可以在检查员中更好地解释这一点:
http://www.w3.org/TR/cors/#generic-cross-origin-request-algorithms
发布于 2016-11-24 10:58:39
我也有类似的情况,在ajax中从域A->B重定向,最后返回到A,因为原产地为null,CORS失败。
在域A上,我设置了访问-控制-允许-原产地: null,这似乎有效,将需要测试更多。
https://stackoverflow.com/questions/22397072
复制相似问题