所以,如果你回头看看我的上一个问题 https://stackoverflow.com/questions/2764444/getting-autodiscover-url-from-exchange-email-address关于 Exchange 自动发现,您会发现获取自动发现 URL 的最简单方法是发送不安全、未经身份验证的GET
向服务器请求,ala:
http://autodiscover.exchangeserver.org/autodiscover/autodiscover.xml http://autodiscover.exchangeserver.org/autodiscover/autodiscover.xml
服务器将使用 302 重定向进行响应,其中包含正确的 urlLocation
header.
我首先尝试使用 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 响应作为响应,要么在清除该响应之后发生了一些事情?