如果我从Angularjs SPA调用VSO API,为什么会在Chrome中收到Internet Explorer增强的安全错误消息?

如果我从Angularjs SPA调用VSO API,为什么会在Chrome中收到Internet Explorer增强的安全错误消息?,angularjs,google-chrome,authentication,azure-devops-rest-api,Angularjs,Google Chrome,Authentication,Azure Devops Rest Api,我在Angularjs-Typescript中实现了一个SPA,它调用VSO API并提供认证数据,您可以在下面找到: (():void=>{ “严格使用”; 有棱角的 .模块(“应用程序”) .config(config); 配置$inject=[ “$httpProvider” ]; 函数配置( $httpProvider:ng.IHttpProvider ) { $httpProvider.defaults.headers.common['Authorization']=“承载者用户名:密

我在Angularjs-Typescript中实现了一个SPA,它调用VSO API并提供认证数据,您可以在下面找到:

(():void=>{
“严格使用”;
有棱角的
.模块(“应用程序”)
.config(config);
配置$inject=[
“$httpProvider”
];
函数配置(
$httpProvider:ng.IHttpProvider
) {
$httpProvider.defaults.headers.common['Authorization']=“承载者用户名:密码”;
}
});
我看到浏览器的“网络”选项卡,此呼叫将被重定向到此处:

https://app.vssps.visualstudio.com/_signin?realm=dldxdm.visualstudio.com&reply_to...
和下面的请求

控制台没有显示任何身份验证错误,但没有我的请求(GET)的结果,但应该是!我得到的不是结果,而是屏幕截图中显示的信息。很明显,Microsoft Internet Explorer的增强安全配置当前已在您的环境中启用。这种增强的安全级别会阻止我们的web集成体验正确显示或执行。要继续操作,请禁用此配置或与管理员联系。但是查询是在Chrome中执行的。为什么会出现IE错误消息

在浏览器中,我登录到项目的VSO,如果我复制url并粘贴到另一个选项卡中并执行它,我将得到我想要的正确结果

问题

  • 为什么Angular应用程序执行的查询没有结果
  • 我应该如何验证VSO?我无法设置令牌,因为它当前在本地主机上运行
我在谷歌上搜索IE错误消息,但没有答案。如何禁用IE的增强安全性我已经找到了Windows服务器的答案。我认为它们与我的问题无关

更新


好的,我有一个关于正在发生的事情的计划。下一步,实现。

我发现这发生在我身上,当时我的PAT由于复制粘贴错误而出错


看来您的身份验证可能失败了,因为您没有对承载令牌进行base64编码。

我也遇到了同样的问题。我在《邮递员》杂志上证实了这一点,如下所示

我不必对我的PAT进行base64编码。 我发现我只需要再次检查我的PAT是否有正确的访问权限。 我以基本身份传递数据。 用户名:“你到底想要什么” 密码:帕特


回答:200在您的个人访问令牌(PAT)前面加上:(冒号)。然后用base64编码

例如:

如果“myaccesstoken”是我的专利

将base 64编码器应用于“:myaccesstoken”

在授权标头中,将基本编码字符串放置为

授权:基本MyClonPrefixedBASE64String


您找到了与此问题相关的解决方案吗?我在尝试从VSTS代理docker容器中卷曲https://$VSTS_ACCOUNT.visualstudio.com/_api/distributedtask/packages/agent?platform=ubuntu.$ubuntu_VERSION-x64时出错。令人难以置信的是,服务器端错误假设您使用IE作为浏览器。curl不是IE,ubuntu上没有任何安全区。链接文章没有加载:(对我们来说,这是因为PAT必须是前缀):在您对其进行base64编码之前。然后将其作为授权标题提供:Basic@Andy:您可以将其作为答案添加,仅供参考:它解决了我的问题。@RuSs我已经标记了您的评论:建议用户使用第三方网站加密安全密钥是一种危险的做法。@Andy谢谢。我删除了我的答案。我是个白痴。我说的答案是正确的我昨天试过了。除了这个答案,以上所有的答案对我都不起作用。谢谢你!几个小时后你救了我!