Har*_* Es 4 c# typescript asp.net-core angular
在这里,我使用了一个 HTTP POST 请求Angular 6,它在 .net 核心 Web API 调用中命中,但我没有将响应输出返回到Angular 6控制台,并且在控制台中出现以下错误:
“从源‘ http://localhost:4200 ’访问 XMLHttpRequest 在‘ http://localhost:55654/api/login/auth ’已被 CORS 策略阻止:没有‘Access-Control-Allow-Origin’标头是出现在请求的资源上。”
但我有点困惑,如果它是任何CORS启用访问问题,它不会命中 Web API 调用。但它击中了 API 调用,我没有得到响应。
Angular 6 HTTP POST 要求:
this.http.post("http://localhost:55654/api/login/auth", credentials, {
headers: new HttpHeaders({
"Content-Type": "application/json"
})
}).subscribe(response => {
let token = (<any>response);
localStorage.setItem("jwt", token);
}, err => {
});
Run Code Online (Sandbox Code Playgroud)
我CORS在以下方法中启用了.NetCore Web API
Configure方法Startup.cs:
...
app.UseCors(options =>
options.WithOrigins("http://localhost:4200")
.AllowAnyMethod()
.AllowAnyHeader());
...
Run Code Online (Sandbox Code Playgroud)
ConfigureServices方法Startup.cs:
...
services.AddCors();
...
Run Code Online (Sandbox Code Playgroud)
在 Startup.cs 上添加 ConfigureServices:
services.AddCors();
Run Code Online (Sandbox Code Playgroud)
在配置添加
app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
Run Code Online (Sandbox Code Playgroud)
这解决了你的问题