CORS请求获取WWW-Authenticate标头

时间:2016-09-15 15:45:03

标签: javascript cors http-authentication

我试图向服务器发出CORS请求,我知道在这种情况下需要身份验证。我不想做的是浏览器弹出提示输入凭据的对话框。

在理想的世界里,我会,

1)发出CORS请求

2)看到它需要身份验证

3)获取WWW-Authenticate标题

4)使用新的身份验证标头集

重新发出CORS请求

当我尝试此操作时,初始请求将返回,浏览器会立即提示输入用户名和密码。

在幕后我有办法验证自己是否可以获取WWW-Authenticate标头来检查它是否是摘要或基本身份验证所需。此时,就XMLHttpRequest而言,标头为空。

我假设要自己保存,浏览器已将其剥离,因为它会处理它。状态现在也设置为0而不是401。

var client = = new XMLHttpRequest();
client.open('GET', src, true);

client.onreadystatechange = function () {
if (client.readyState === XMLHttpRequest.DONE && client.status === 200) {
    // Success
}

if (client.readyState === XMLHttpRequest.DONE && client.status === 401) {
    var wwwHeader = client.getResponseHeader("WWW-Authenticate"); /// <-- this is nullwhenever I use a CORS request
    // create authentication header to reissue request
}

if (client.readyState === XMLHttpRequest.DONE && client.stataus === 0) {
    // the browser hates me and what I have done to it  <-- this is where I end up
}

我是否从根本上误解了某些内容?

编辑:更新了示例中的评论

0 个答案:

没有答案