我的项目在Visual Studio上运行得很好,但是在我发布了ASP.NET Core Web API并构建了Angular代码之后,由于这个错误,我无法访问API函数:
CORS策略已阻止从源“http://localhost:44413”访问位于“http://localhost:7173/login/login”的XMLHttpRequest:对印前检查请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我检查了网络选项卡,发现没有向请求中添加http标头。
我真的不知道为什么出版后会发生这种情况。
var MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
builder.Services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
......
app.UseCors(MyAllowSpecificOrigins);
这是角调用:
let httpOptions = {
headers: new HttpHeaders({
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*'
})
};
this.http.post<string>('http://localhost:7173/login/login', this.user, httpOptions)
.subscribe(results => { console.log(results); },
error => console.log(error));
这是我的代理JSON:
{
"/*": {
"target": "http://localhost:7173/",
"secure": false,
"logLevel": "debug"
}
}
我做了一切,改变了一切,但错误仍然是一样的。
在visual studio上一切都运行得很好,但是在发布之后,我不知道是什么原因。
2条答案
按热度按时间plupiseo1#
https://github.com/mammadkoma/WebApi/blob/master/WebApi/Program.cs
服务和中间件的顺序很重要。
xwbd5t1u2#
我终于在这个视频中通过手册做到了这一点:
https://www.youtube.com/watch?v=Lt3wve_nb0g
这与Cors或其他东西无关,问题是后端ASP.NET Core Web API没有运行。在IIS中,在池中,我们应该在相关池中设置32位应用程序激活为true。
对于发布,我们必须以管理员身份运行Visual Studio。