我向我的服务提出了一个简单的请求:
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();
}
所以我想要实现的是调用我的端点来查看授权类型(基本或承载)是什么,然后当我获得auth类型时,我会发出实际请求适当的凭证。
如果我手动发出请求,我会获得401未授权,这是正常的,但我也在我的标题中获得了WWW-Authenticate:Basic ...但是,如果我这样做javascript调用它将失败401:未经授权但我没有在我的回调中得到这个失败的响应所以authType将是未定义的。
我之前没有使用过javascript,所以问题是如果请求在未经授权的情况下失败,我怎样才能在回调中获得响应?
答案 0 :(得分:0)
XMLHttpRequest有一个可以使用的onerror回调:
var request = new XMLHttpRequest();
...
request.onerror = function(){
if (this.status == 401) {
}
}
...
request.send();