Internet explorer Internet Explorer 11是否未在CORS请求中添加源标题?

Internet explorer Internet Explorer 11是否未在CORS请求中添加源标题?,internet-explorer,xmlhttprequest,cross-domain,cors,Internet Explorer,Xmlhttprequest,Cross Domain,Cors,我的问题取决于几个我认为正确的假设 假设编号1:原始标题 浏览器要求将源站标题放在CORS(跨源站资源共享)请求上 : 要启动跨源请求,浏览器会发送带有 源HTTP头 : 首先要注意的是,有效的CORS请求始终包含 原点标题。此原点标头由浏览器添加,并且可以 不能由用户控制 : 如果请求URL来源与原始URL的来源不同 原点,将源原点设置为全局唯一标识符[…] 假设2:Internet Explorer 10+支持CORS 请查看并使用谷歌,以获取数百个不同类型的声称支持的来源 假设3:不同的端

我的问题取决于几个我认为正确的假设

假设编号1:原始标题 浏览器要求将
源站
标题放在CORS(跨源站资源共享)请求上

:

要启动跨源请求,浏览器会发送带有 源HTTP头

:

首先要注意的是,有效的CORS请求始终包含 原点标题。此原点标头由浏览器添加,并且可以 不能由用户控制

:

如果请求URL来源与原始URL的来源不同 原点,将源原点设置为全局唯一标识符[…]

假设2:Internet Explorer 10+支持CORS 请查看并使用谷歌,以获取数百个不同类型的声称支持的来源

假设3:不同的端口是不同的来源 使用不同端口号的资源被视为来自不同的来源:

当且仅当 所有这些值都完全相同。[…]故障-相同协议 和主机,但端口不同

如果协议、端口(如果其中一个是 指定的)和主机对于这两个页面是相同的

问题是:
当使用不同端口(从8411到8080)向同一域“localhost”发出CORS请求时,Internet Explorer 11不会发送
Origin
头。Opera、FireFox和Chrome都会发送源标题。然而每个人都说CORS在InternetExplorer10+中是受支持的。

我只是碰巧在一次会议上偶然发现一个报告的bug,它清楚地描述了我的问题。微软员工很快得出结论:

没有足够的信息来重现您的行为 观察


自从他们的第一次评论和第一次尝试(?)以来,他们实际上已经在不同的端口上运行了两个不同的web服务器,并重现了这个问题。微软的最新评论称,他们“考虑在将来进行修复。”

Internet Explorer对“同一来源”的定义与其他浏览器不同。请参阅MDN文档中关于同一原产地政策的部分:

对于同源策略,Internet Explorer有两个主要例外:

  • 信任区域:如果两个域都位于高度信任区域,例如公司域,则不应用相同来源限制
  • 端口:IE不将端口包含在同一来源组件中,因此,从同一来源考虑,不应用任何限制

因此,如果您的跨源请求发生在不同的端口上,或者在IE的某个受信任区域内,IE将不会将该请求视为跨源请求,并且不需要添加
源:
标题。

源代码的一个问题是它不是来自Microsoft站点。我在微软相关网站上的调查结果显示,这是一个可能被“修复”的bug。奇怪。这可能是因为你的信息来源反映了主题的观点,因为有人“推断”这一定是以某种特定的方式出现的?我对Microsoft代表在你的链接中使用的词语也有点困惑。他们提到了“修复”,但他们也将该问题描述为“与其他浏览器的长期互操作性差异,我们将不同端口视为同一来源,而其他浏览器将其视为跨来源。”MDN文档指出,这种“互操作性差异”也适用于受信任区域内的站点,这就是我所经历的行为的原因。他们指的是“修复”,因为IE目前不符合说明端口(无论是显式指定还是隐式指定)确实构成源标识一部分的规范。微软面临的另一个问题是,很长一段时间以来,微软一直以不同的方式考虑来源(即不包括端口)。因此,如果他们“修复”行为以遵守规范,他们将破坏任何人期望的先前行为的代码。(然后有人会对此提出质疑……这是一场由来已久的辩论。)我面临着类似的问题。有人能帮忙吗?IE的团队现在在这里,这真的需要解决。