在Angular中解决跨域请求被阻止的问题,可以通过设置代理或在Web.API中启用跨域请求。
proxy.conf.json
文件,如果没有则创建该文件,并添加以下内容:{
"/api/*": {
"target": "http://localhost:5000",
"secure": false,
"logLevel": "debug"
}
}
这里假设Web.API的地址是http://localhost:5000
,你可以根据实际情况修改。
然后,在package.json
文件中的scripts
部分添加以下内容:
"start": "ng serve --proxy-config proxy.conf.json"
最后,运行npm start
启动Angular应用,代理将会拦截所有以/api
开头的请求,并将其转发到指定的Web.API地址,从而解决跨域请求被阻止的问题。
Startup.cs
文件中的ConfigureServices
方法中添加以下代码:services.AddCors(options =>
{
options.AddPolicy("AllowAll", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
然后,在Configure
方法中添加以下代码:
app.UseCors("AllowAll");
这样就启用了允许来自任何来源的跨域请求。
通过以上两种方法之一,你就可以解决Angular向Web.API发出的POST请求被阻止的问题。