У меня есть простой запрос, который я делаю для своего сервиса:
var request = new XMLHttpRequest();
request.open("OPTIONS", url, true);
request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
request.setRequestHeader('Accept', 'application/json');
request.onreadystatechange = function () {
if (request.readyState != 4) {
return;
}
var authType = request.getResponseHeader("WWW-Authenticate");
makeRequest(...);
};
request.send();
}
Итак, чего я пытаюсь добиться, это позвонить в мою конечную точку, чтобы узнать, какой тип авторизации (базовый или носитель), а затем, когда я получу тип авторизации, я сделаю фактический запрос с соответствующими учетными данными.
Если я делаю запрос вручную, я получаю 401 неавторизованный запрос, что нормально, но я также получаю WWW-Authenticate: Basic... в своих заголовках. Однако, если я выполню этот вызов javascript, он просто завершится с ошибкой 401: unauthorized, но я не получу этот неудачный ответ в своем обратном вызове, поэтому authType будет неопределенным.
Я раньше не использовал javascript, поэтому вопрос в том, как я могу получить ответ в обратном вызове, даже если запрос не выполнен с несанкционированным доступом?
XMLHttpRequest.getResponseHeader()
: Шаг 2: Если установлен флаг ошибки, верните ноль. - person Andreas   schedule 26.10.2015