【发布时间】:2023-03-24 18:01:01
【问题描述】:
我有错误
CORS 策略已阻止从源“http://localhost:3000”获取“http://localhost:5000/admin/authenticate”的访问权限:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
我的 ApiManager
function login(username, password) {
const requestOptions = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*' },
body: JSON.stringify({ username, password })};
return fetch(`http://localhost:5000/admin/authenticate`, requestOptions)
.then(handleResponse)
.then(user => {
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('user', JSON.stringify(user));
return user;
}
);
}
在后端 Asp.Net Core 2.2 (Startup.cs) 我写:
services.AddCors(options =>
{
options.AddPolicy(
_corsName,
builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials(); });}
);
【问题讨论】:
-
AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials()不是有效的 CORS 设置,请花时间阅读developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/… -
在客户端设置
'Accept': 'application/json'和'Access-Control-Allow-Origin': '*'标头的预期结果是什么? -
我相信您的代码只是注册了 CORS 服务,并没有启用它。我会参考documentation,看看你的代码有什么特别的不同。
标签: javascript c# asp.net reactjs api