CORS出现以下错误
从原点'https://localhost:44341'访问'https://localhost:44385/AuctionDetails/GetAllAuctions'的XMLHttpRequest已被CORS策略阻止:对预飞行请求的响应未通过访问控制检查:请求的资源上不存在'Access- control - allow - origin '标头。
我正在尝试从另一个应用程序中开发。net Core 5.0的WebAPI。
我的ajax调用如下:$.ajax({
async: true,
url: "https://localhost:44385/AuctionDetails/GetAllAuctions",
type: "GET",
crossDomain: true,
dataType: "JSON",
headers: {
"Authorization": 'Bearer ' + '@Session["USRT_TOKEN"]',
'Access-Control-Allow-Origin': '*'
},
success: function (responseData) {
console.log(responseData);
},
failure: function (response) {
alert("Failure");
},
error: function (errorMessage) {
debugger;
console.log(errorMessage.statusText);
if (errorMessage.status == "401") {
if (errorMessage.responseText == "") {
alert("Invalid Token. Please login again.");
RedirectToLogin(errorMessage.responseText);
}
else {
alert("Invalid Token. Please login again.");
}
}
else {
alert(errorMessage.responseText);
}
}
});
我已经安装了Microsoft.AspNetCore.Cors软件包。并在Startup.cs
中做了以下更改public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
**services.AddCors(options => options.AddDefaultPolicy(
builder => builder.AllowAnyOrigin()));**
services.AddControllers();
}
并且在app.UseRouting()和app.UseAuthorization()之间添加了app.UseCors()。
我也尝试过这个政策,但仍然有同样的问题。我的API代码也被调用,但有响应后,它也落在ajax调用的错误部分。
在尝试了所有这些之后,我还是不明白为什么会这样。
也尝试添加标题发布规则和方法。如:
services.AddCors(options =>
options.AddDefaultPolicy(builder =>
{
builder.AllowAnyOrigin();
builder.AllowAnyHeader();
builder.AllowAnyMethod();
}));