Internet Explorer 11不会在CORS请求中添加Origin标头?

 cl云中皓 发布于 2023-02-08 09:35

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

假设nr 1:原始标题

Origin头是由浏览器需要在CORS(跨源资源共享)请求被投入.

维基百科:

要启动跨源请求,浏览器会使用Origin HTTP标头发送请求.

HTML5岩石:

首先要注意的是,有效的CORS请求始终包含Origin头.此Origin标头由浏览器添加,不能由用户控制.

W3:

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

假设2:Internet Explorer 10+支持CORS

请参阅caniuse.com并使用谷歌获取数百种不同类型的来源声称支持.

假设nr 3:不同的端口是不同的起源

使用不同端口号的资源被认为具有不同的来源:

维基百科

当且仅当所有这些值完全相同时,才认为两个资源具有相同的来源.[..]失败 - 相同的协议和主机但不同的端口.

Mozilla开发者网络

如果协议,端口(如果指定了一个端口)和主机对两个页面都相同,则两个页面具有相同的原点.

问题:

Origin在向同一域"localhost"发出CORS请求但使用不同端口(从8411到8080)时,Internet Explorer 11不会发送标头.Opera,FireFox和Chrome会发送Origin标头.然而每个人都在说Internet Explorer 10+支持CORS吗?

1 个回答
  • Internet Explorer对"同源"的定义与其他浏览器不同.有关同源策略,请参阅MDN文档的IE Exceptions部分:

    当涉及到相同的源策略时,Internet Explorer有两个主要的例外:

    信任区域:如果两个域都位于高度可信区域,例如公司域,则不会应用相同的源限制

    端口: IE不包含进入Same Origin组件的端口,因此http://company.com:81/index.html和http://company.com/index.html被认为来自同一个来源,并且不应用任何限制.

    因此,如果您的跨源请求发生在不同的端口或IE的受信任区域之一,IE将不会将请求视为跨源,并且不会添加Origin:标头.

    2023-02-08 09:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有