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