我正在使用RESTful API与JavaScript客户端一起使用。所有API调用都经过身份验证。不幸的是,如果提供的凭据不正确,则会弹出可怕的浏览器提示。
现在,我知道在客户端无法抑制此问题。幸运的是,我控制着客户端和API。
我想尽可能保留API。因此,我宁愿不将响应代码更改为403.作为替代方案,我正在考虑允许客户端禁止WWW-Authenticate标头(通过请求中的自定义标头)。它似乎是触发提示而不一定是401代码本身,至少在最新版本的Chrome中。
有没有人对此有任何见解?在其他浏览器中可靠吗?我为什么不走这条路?
谢谢,
肯
答案 0 :(得分:0)
弹出窗口是401 Unauthorized
答案,如果你使用的是jQuery,你可以在error()
回调中或在ajax调用的statusCode
属性中捕获:
$.ajax({
url : url,
type : 'GET/POST/PUT/DELETE',
data : { your data here },
dataType : 'json/xml/html',
statusCode : {
200 : function(data, textStatus, jqXHR){
// your logic here
},
401 : function(jqXHR, textStatus, errorThrown){
// your logic here
}
}
});
如果您需要对请求标头执行任何编辑,请在调用中使用beforeSend()
回调,以便在执行之前注入/删除内容。