如何防止浏览器使用Jquery调用Digest auth弹出窗口并处理401错误?

时间:2019-06-20 06:48:13

标签: javascript http http-status-code-401 digest-authentication

我需要使用摘要身份验证发送授权请求。我已经使用jquery成功实现了这一点。但是,当出现 401错误时,摘要身份验证浏览器弹出窗口已打开,并且没有调用jquery ajax错误回调。

2 个答案:

答案 0 :(得分:0)

将服务器响应更改为不返回401。而是返回200代码,并在jQuery客户端中进行处理。 将用于授权的方法更改为标头中的自定义值。浏览器将显示“基本”和“摘要”的弹出窗口。您必须在客户端和服务器上都进行更改。

headers : {
  "Authorization" : "BasicCustom"
}

看这里:Use basic authentication with jQuery and Ajax

答案 1 :(得分:0)

“对于这个问题,我只想知道我是否使用摘要式身份验证,如何防止浏览器弹出。”

不幸的是,这是不可能的。对于所有Ajax请求事件(loadstartloadloadendprogresserroraborttimeout)处理程序和事件处理程序onreadystatechange,只有loadstart在浏览器弹出摘要之前被触发(实际上甚至在服务器检索到请求之前就被触发)。

因此,从浏览器端JavaScript的角度来看,摘要摘要弹出窗口之前不会进行任何调用,这意味着我们无法采取任何措施来阻止弹出窗口。