我的问题取决于几个我认为正确的假设。
浏览器要求将源站
标题放在CORS(跨源站资源共享)请求上。
维基百科:
要启动跨源请求,浏览器发送带有Origin HTTP标头的请求。
HTML5岩石:
首先要注意的是,有效的CORS请求总是包含Origin标头。这个Origin头是由浏览器添加的,不能由用户控制。
W3:
如果请求URL来源与原始URL来源不同,请将源来源设置为全局唯一标识符[…]。
看到caniuse.com和使用谷歌为一对夫妇数百不同种类的来源声称支持。
使用不同端口号的资源被视为来自不同的来源:
维基百科
当且仅当所有这些值完全相同时,两个资源被视为具有相同的来源。[…]故障-相同的协议和主机,但不同的端口。
Mozilla开发者网络
如果两个页面的协议、端口(如果指定了一个)和主机相同,则两个页面具有相同的原点。
Internet Explorer 11不发送Origin
标头时,向相同的域"localhost"但使用不同的端口(从8411到8080)发出CORS请求。Opera、FireFox和Chrome发送Origin标头。然而,每个人都说CORS在Internet Explorer 10中得到支持?
我只是碰巧在微软的一个相关网站上发现了一个报告的bug,它清楚地描述了我的问题。微软员工很快得出结论:
没有足够的信息来重现你正在观察的行为。
自从他们的第一次评论和第一次尝试(?)以来,他们实际上已经在不同的端口上运行了两个不同的web服务器,并重现了这个问题。微软的最新评论称,他们“考虑在未来进行修复”。
Internet Explorer对“同一来源”的定义与其他浏览器不同。请参阅MDN文档中关于同一原产地政策的IE例外部分:
对于同源策略,Internet Explorer有两个主要例外:
因此,如果您的跨源请求发生在不同的端口或IE的一个受信任区域内,IE将不会将该请求视为跨源请求,并且不需要添加origin:
标头。
我使用的是Swagger 2.0和Swagger UI 3.0.3。 在我的api_定义中。yaml在我的路径之前有以下内容: 这将在Swagger UI中添加一个授权按钮,用户可以在其中粘贴他们的API密钥。我希望此API密钥在每个请求的请求标头中发送。但这不会发生,我不确定为什么。我错过了什么吗? 编辑: 请求似乎发出了,我回来了。 Chrome开发工具显示以下请求头: 我有路径设置为: 定义
问题内容: 我已经开发了一个Restfull应用程序,我想添加另一个Web应用程序来使用其服务,因此我进行了以下Ajax调用: 我得到这个例外: 对象{readyState:0,状态:0,statusText:“ SyntaxError:无法执行’setRequestHeader’…-Origin: ‘不是有效的HTTP标头字段名称。”}错误DOMException:无法在’XMLHttpRequ
我已经在标题中添加了CORS,但我仍然在请求中得到CORS问题。在头中添加和处理CORS和其他请求的正确方法是什么? 以下是服务文件代码: 错误: 对preflight请求的响应未通过访问控制检查:请求的资源上没有“access-control-allow-origin”标头。因此,不允许访问源“http://localhost:4200” 失败:(未知url)的Http失败响应:0未知错误 在我
我试图创建一个html文件,同步数据从一个pouchDb到couchDb..但是iam在chrome控制台得到以下错误。 选项http://localhost:5984/todos/No“Access-Control-Allow-Origin”标头存在于请求的资源上。因此,不允许访问源'http://localhost:8080'。XMLHttpRequest无法加载http://localhos
问题内容: 我们正在将AJAX请求发布到本地运行的服务器,即 该javascript正在执行的页面也从localhost:9000提供服务,即,这完全像一个同源请求。 但是,由于某种原因,Google Chrome总是在结果请求中设置Origin标头,从而导致我们的服务器基于错误的假设(即CORS请求)阻止该请求。 在Firefox中不会发生这种情况。 此外,Firefox和Chrome均未发送O
我使用AJAX请求通过POST将数据发送到另一个域。因为我的内容类型不是标准的(它是JSON格式),所以需要一个飞行前请求。(使用请求方法:选项) 如维基百科跨域XHR调用图表中所述 我想知道这是否很费时,因为浏览器将必须到达服务器两次或不?也许这取决于每个浏览器的行为? 通过使用内容类型“纯文本”来避免飞行前请求,我是否获得了一些时间?