javascript - 在 Chrome 66 中向经过 NTLM 身份验证的服务器发出 API 请求

标签 javascript rest api google-chrome ntlm-authentication

将浏览器升级到 Chrome 66 后,我在向最初需要 NTLM 身份验证的服务器创建任何 API 请求时遇到问题。我想知道是否有人有任何解释为什么。我认为这与 Chrome 中添加的广告拦截技术或安全性有关,或者可能是 Chrome 的一个错误。

我使用 Fetch 创建了一个基本示例。发生的情况是用户访问该网站,Chrome 将用户重定向到 API 进行身份验证(而不是像以前版本的 Chrome 那样保留在同一网站上),当用户进行身份验证时,页面会变为空白,并且 Chrome 似乎禁用了键盘(我无法按 cmd + w 关闭选项卡)。当我刷新此页面时,API 响应开始显示在浏览器中。用户通过身份验证后,他们可以返回到创建 API 请求的初始页面,并且工作正常。

是否需要在标题中添加一些内容才能使其正常工作?

请不要仅仅建议使用替代身份验证方法作为解决方案。

<html>
<head>
    <script type="text/javascript">
        fetch('https://fakeapiurl.com/api', {
            credentials: 'include'
        })
        .then(function(response) {
            return response.json();
        })
        .then(function(myJson) {
            console.log(myJson);
        });
    </script>
</head>

<body>
</body>
</html>

最佳答案

正如您所怀疑的那样,这已被报告为 Chrome 66 中的错误。我链接到您的帖子并在那里添加了我自己的评论。

https://bugs.chromium.org/p/chromium/issues/detail?id=843861

关于javascript - 在 Chrome 66 中向经过 NTLM 身份验证的服务器发出 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50268590/

相关文章:

javascript - 如何通过 PostMessage 将 Serviceworker 响应主体 ReadableByteStream 作为 Blob 返回?

rest - 官方文档中是否有完整的 sharepoint online rest api 列表?

javascript - 从输入缩放图像[type=file]

rest - glassfish 休息 WEB9031 异常

javascript - 使用选定值中的数组填充 Kendo DropDownList

php - 在中间件之后执行服务提供者

javascript - 如何在 Angular 上静默 http 错误响应

JAVA获取URL API

javascript - 使用 jQuery 传递变量并检索

javascript - HTML:存储用户值