【发布时间】:2019-08-04 21:24:27
【问题描述】:
我已经开发了 .Net Core MVC (angular) 应用和 .net core Api 应用
在这两个应用程序中,我都在 Web 应用程序和 api 中启用了 CORS
.Net Core
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
// in Configure
app.UseCors("CorsPolicy");
角度
对于所有 Get 和 Post 添加如下标题
get(url: string, options?: any) {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
headers.append('Access-Control-Allow-Origin', '*');
headers.append('Accept', 'applcation/ json');
options = { headers: headers };
const _url = this.webapiurl + url;
return this.http.get(_url, options);
}
仍然面临 CORS 错误
Access to XMLHttpRequest at 'http://etestservice.qa.com:5003/QA/api/test/GetDetails?email=abc@gmail.com' from origin 'http://etestweb.qa.com::5002' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
【问题讨论】:
-
你应该在
app.UseMvc();和其他app.Use...调用之前调用app.UseCors("CorsPolicy"); -
您不需要客户端上的
headers.append('Access-Control-Allow-Origin', '*');标头...您应该将其作为服务器响应的一部分接收 -
CORS 错误可能是众所周知的“误报”。换句话说,您的服务器代码中出现异常 - 但在浏览器中它显示为 CORS 错误。检查您的服务器日志文件是否有异常!另外 - 看看 F12 网络选项卡 - 你在 API 调用中得到了什么?
标签: c# angular cors asp.net-core-mvc asp.net-core-2.0