Javascript Azure SDK for Node-密钥库管理-CORS飞行前:服务器响应状态为400(错误请求)
我正在尝试创建一个React.js应用程序,它有一个div:Javascript Azure SDK for Node-密钥库管理-CORS飞行前:服务器响应状态为400(错误请求),javascript,node.js,reactjs,azure,azure-keyvault,Javascript,Node.js,Reactjs,Azure,Azure Keyvault,我正在尝试创建一个React.js应用程序,它有一个div: 在函数内部,我从Azure GitHub复制了代码: 当我点击时,它会在Chrome控制台中抛出以下错误 login.microsoftonline.com/common/oauth2/devicecode?api版本=1.0:1 加载资源失败:服务器响应状态为400 (请求错误) localhost/:1未能加载 : 对飞行前请求的响应未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请
在函数内部,我从Azure GitHub复制了代码:
当我点击
时,它会在Chrome控制台中抛出以下错误
login.microsoftonline.com/common/oauth2/devicecode?api版本=1.0:1
加载资源失败:服务器响应状态为400
(请求错误)
localhost/:1未能加载
:
对飞行前请求的响应未通过访问控制检查:否
“Access Control Allow Origin”标头出现在请求的服务器上
资源。因此,不允许访问源“”。
响应的HTTP状态代码为400。如果一个不透明的回应有效
根据您的需要,将请求的模式设置为“no cors”以获取资源
CORS被禁用
我知道问题是我试图调用的API与http://localhost/
相同的来源,所以它拒绝
这个应用程序是用webpack(没有特殊的东西)、React.js、Typescript等构建的。它托管在IIS中,只需创建一个应用程序并指向build文件夹
我在问,我如何才能让它工作,因为我不能只向任何请求添加像accesscontrolalloworigin:
这样的头,因为实现都在npm包中
感谢您的指导。
谢谢。由于CORS的限制,目前无法从浏览器端web应用程序使用REST API 已经有人要求增加CORS支持,您可以投票 作为一种解决方法,您可以创建一个在服务器上运行的小型web应用程序,并将您的请求代理到密钥库。我已经为此创建了一个小型PHP应用程序,不久将在GitHub上共享。(我将用链接更新帖子。) 您链接的示例是一个Node.js应用程序,可以作为应用程序运行,但不能在浏览器中运行
import * as msRestAzure from "ms-rest-azure";
import KeyVaultManagementClient from "azure-arm-keyvault";
public handleClick(evt: any): void {
// Interactive Login
let client: any;
msRestAzure.interactiveLogin().then((credentials) => {
client = new KeyVaultManagementClient(credentials, "my-subscription-id");
return client.vaults.list();
}).then((vaults) => {
console.dir(vaults, {depth: null, colors: true});
return;
})
}
localhost/:1 Uncaught (in promise) TypeError: Failed to fetch