Итак, если вы посмотрите на мой предыдущий вопрос об автообнаружении Exchange, вы увидите, что самый простой способ получить URL-адрес автообнаружения - это отправить незащищенный, не прошедший проверку подлинности GET
запрос к серверу, аля:
http://autodiscover.exchangeserver.org/autodiscover/autodiscover.xml
Сервер ответит перенаправлением 302 с правильным URL-адресом в заголовке Location
.
Сначала я пробую что-то действительно простое с расширением Chrome, где у меня есть:
if (req.readyState==4 && req.status==302) {
return req.getResponseHeader("Location");
}
С помощью другого вызова ajax, настроенного с полной записью XML и учетными данными пользователя,
Но вместо этого Chrome зависает в этот момент, и взгляд на панель разработчика показывает, что он не возвращает ответ, а вместо этого ведет себя так, как будто ответ не был получен, показывая при этом
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
в журнале ошибок.
На мой взгляд, обращение к точному статусу ответа - это то же самое, что и его "перехват", но я не уверен, что проблема в Chrome / WebKit или в том, как XHR-запросы всегда обрабатывают перенаправления.
Я не уверен, как это перехватить, чтобы я мог получить заголовки из ответа.
Или можно было бы настроить вторичный XHR таким образом, чтобы при получении 302 он отправлял совершенно другой запрос?
Быстрое обновление
Я просто изменил его, чтобы он не проверял код ответа:
if (req.readyState==4) {
return req.getResponseHeader("Location");
}
и вместо этого, когда я предупреждаю значение, оно null
. и все еще та же ошибка и нет ответа в консоли разработчика. ТАК что кажется, что он или не отслеживает 302 ответа как ответы, или что-то происходит после того, как этот ответ стирает этот ответ?