CORS重定向工作异常
CORS redirect works unexpectedly
根据CORS规范(7.1.7 -重定向步骤(针对简单跨域请求)):
- 如果请求URL来源与原始URL来源不相同,则将源来源设置为全局唯一标识符(传输时变为null)。
我有一个场景,其中javascript从a.b laah.com使CORS请求(即起源请求头存在)通过发送浏览器b.b laah.com,它响应302和位置= c.b laah.com。如果我正确阅读规范,这应该导致对c.blah.com的请求包含Origin header = "null"。相反,原点标头不存在,因此对c.blah.com的请求不被视为CORS请求。
在Chrome 54中出现上述行为。我还没有确认其他浏览器中的确切请求内容,但我已经检查了我的特定应用程序流在Chrome 54, Firefox 37和IE 11浏览器中工作,这意味着他们永远不会看到Origin标头设置为"null"(如果收到Origin ="null",我的服务将大声失败请求)。
这一切都让我担心,因为当我的应用程序工作时,它实际上不应该工作,我不想忽略这个事实。我是否误解了说明书?对于spec行为,是否有任何我遗漏的警告?
所有流量都是HTTPS,在CORS响应头中不返回*(通配符),适当设置带有凭据标志/头,没有使用代理,所有参与者在单独的机器上,所以不应该是本地主机gotcha…
谢谢。
在我的原始配置中,对b.blah.com的请求是由js(而不是xhr)发布的表单。经过一番挖掘,似乎由于请求是由js触发的,这保证了对b.b laah.com的请求上有一个Origin头,但最终重定向到c.b laah.com是由浏览器处理的,没有任何脚本/xhr干预,所以重定向没有使用Origin头装饰。
我设置了一个测试,其中对b.b laah.com的请求是xhr,这确实导致了对c.b laah.com的重定向上的Origin = "null"。
我想我需要更好地研究一下何时执行同源策略的细微差别。
谢谢。
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 派生进程的stdout在管道传输时工作异常
- JavaScript 异常处理未按预期工作
- $mdDialog.prompt 抛出异常,但该函数在确认时工作正常
- 如何使工作 Chrome 扩展程序的未捕获异常处理程序(由于 CORS 保护而不起作用)
- Node JS-记录工作集群上一次异常
- jQuery-RegEx工作异常
- 谷歌图表在不抛出异常的情况下无法工作
- CORS重定向工作异常
- JavaScript -为什么推送不工作并抛出异常
- 窗口.onerror不能在移动设备上工作——我应该如何处理未处理的异常
- 函数正向引用工作异常
- html5 canvas-Javascript createImageData抛出DOM异常9,rgb数据不工作
- 当数组定义为3时,一个Javascript - forth值的神秘工作没有返回异常