我的webapp正在通过GET请求向我的服务器发出ajax HTTP请求,该请求将响应303状态代码。 (我相信)浏览器处理此重定向并在前一个303响应的Location头之后发出GET请求。唯一的问题是我的初始响应(导致303)有一个请求标头,身份验证。在Safari和IE上,此标头不会转发到重定向GET请求(Chrome和Firefox没有问题)。这个标题非常重要,没有它,我的GET请求导致401 Unauthorized。
我对底层结构浏览器行为非常天真,我对以下内容感到困惑:
请求网址:DOMAIN / integrator / profiles / campus / default
请求标题
Authorization:Bearer f85a5ce3-7c08-4e4d-a1b3
Cache-Control:no-cache
Connection:keep-alive
Content-Type:application/json
Referer:http://localhost:3007/html5storefront/
X-Requested-With:XMLHttpRequest
状态代码:303见其他
响应标头
Cache-Control:no-cache
Connection:Keep-Alive
Content-Length:0
Content-Type:application/json
Date:Mon, 03 Mar 2014 21:38:13 GMT
Keep-Alive:timeout=5, max=99
Location:http://localhost:3007/integrator/profiles/campus/gi4dgqzsgrbuelkegmydoljug4ztgl
Server:Apache-Coyote/1.1
请求网址:DOMAIN / integrator / profiles / campus / gi4dgqzsgrbuelkegmydoljug4ztgl
Chrome重定向请求(类似于Firefox)
Authorization:Bearer f85a5ce3-7c08-4e4d-a1b3
Cache-Control:no-cache
Connection:keep-alive
Content-Type:application/json
Referer:http://localhost:3007/html5storefront/
X-Requested-With:XMLHttpRequest
请求网址:DOMAIN / integrator / profiles / campus / gi4dgqzsgrbuelkegmydoljug4ztgl
Safari的重定向请求(类似于IE)
Referer:http://localhost:3007/html5storefront/
X-Requested-With:XMLHttpRequest
请注意Safari重定向请求中Authorization标头的绝对值。
感谢大家阅读我的问题。