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



将浏览器升级到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

最新更新