我正在尝试调用(spring)rest API,它使用Spring安全性使用摘要式身份验证进行保护,并尝试从redux前端访问它。我收到一个401
响应回到前端,它有响应头WWW-Authenticate:也..但不幸的是我没有在我的前端输入http基本身份验证弹出用户名和密码。
有人可以帮我确定可能的原因吗?当我通过chrome直接点击我的rest API时,我能够弹出http身份验证。
答案 0 :(得分:1)
不幸的是,XHR请求不会触发auth弹出窗口。只有当主要请求(您正在加载的html页面或从该页面进行的重定向)抛出401时,才会发生这种情况。
如果您在iframe
中加载请求,也会触发身份验证屏幕。但是,使用基本身份验证屏幕提供的凭据不会传递给其他XHR请求。如果您确实使用了iframe,则应该使用某种cookie进行响应,并且随后的XHR请求不应再次需要基本的身份验证屏幕
您的选择是:
在您的javascript中捕获此错误,并使用您自己创建的某个界面询问密码。
在iframe(或其他会触发相同安全限制的请求)中发出相同的请求,并在成功时使用会话cookie进行响应,然后触发XHR。
制作登录用户界面并提前询问凭据,因为您需要它们来处理XHR请求。