我的问题取决于我认为的几个假设.
该Origin
头是由浏览器需要在CORS(跨源资源共享)请求被投入.
维基百科:
要启动跨源请求,浏览器会使用Origin HTTP标头发送请求.
HTML5岩石:
首先要注意的是,有效的CORS请求始终包含Origin头.此Origin标头由浏览器添加,不能由用户控制.
W3:
如果请求URL源与原始URL源不同,请将源origin设置为全局唯一标识符[..].
请参阅caniuse.com并使用谷歌获取数百种不同类型的来源声称支持.
使用不同端口号的资源被认为具有不同的来源:
维基百科
当且仅当所有这些值完全相同时,才认为两个资源具有相同的来源.[..]失败 - 相同的协议和主机但不同的端口.
Mozilla开发者网络
如果协议,端口(如果指定了一个端口)和主机对两个页面都相同,则两个页面具有相同的原点.
Origin
在向同一域"localhost"发出CORS请求但使用不同端口(从8411到8080)时,Internet Explorer 11不会发送标头.Opera,FireFox和Chrome会发送Origin标头.然而每个人都在说Internet Explorer 10+支持CORS吗?
Internet Explorer对"同源"的定义与其他浏览器不同.有关同源策略,请参阅MDN文档的IE Exceptions部分:
当涉及到相同的源策略时,Internet Explorer有两个主要的例外:
信任区域:如果两个域都位于高度可信区域,例如公司域,则不会应用相同的源限制
端口: IE不包含进入Same Origin组件的端口,因此http://company.com:81/index.html和http://company.com/index.html被认为来自同一个来源,并且不应用任何限制.
因此,如果您的跨源请求发生在不同的端口或IE的受信任区域之一,IE将不会将请求视为跨源,并且不会添加Origin:
标头.