向 Chrome 66 中的 NTLM 身份验证服务器发出 API 请求

Making an API request to a NTLM authenticated server in Chrome 66

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

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

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

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

<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 中的错误。我链接到您的 post 并在那里添加了我自己的评论。

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