【发布时间】:2010-05-05 02:39:06
【问题描述】:
因此,如果您回顾一下我关于 Exchange 自动发现的 previous question,您会发现获取自动发现 URL 的最简单方法是向服务器发送一个不安全、未经过身份验证的 GET 请求,阿拉:
http://autodiscover.exchangeserver.org/autodiscover/autodiscover.xml
服务器将响应 302 重定向,并在 Location 标头中使用正确的 url。
我一开始正在尝试一些非常简单的 Chrome 扩展程序,我有:
if (req.readyState==4 && req.status==302) {
return req.getResponseHeader("Location");
}
使用完整的 XML Post 和用户凭据设置另一个 ajax 调用,
但是 Chrome 在此时挂起,查看开发人员面板显示它没有返回响应,而是表现得好像没有给出响应,同时显示一个
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
在错误日志中。
在我看来,引用确切的响应状态与“捕获”它大致相同,但我不确定问题是否出在 Chrome/WebKit 上,或者这是否是 XHR 请求始终处理重定向的方式。
我不确定如何捕捉到这一点,以便我仍然可以从响应中获取标头。
或者是否可以设置一个辅助 XHR,这样当它获得 302 时,它会发送一个完全不同的请求?
快速更新
我只是更改了它,使其不检查响应代码:
if (req.readyState==4) {
return req.getResponseHeader("Location");
}
当我提醒它的值时,它是null。并且在开发控制台中仍然存在相同的错误并且没有响应。因此,它似乎要么没有将 302 响应作为响应进行跟踪,要么在清除该响应之后发生了某些事情?
【问题讨论】:
标签: ajax redirect google-chrome xmlhttprequest http-status-code-302