我在Chrome中收到以下错误:
对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标题出现在请求的上 资源。起源' http://localhost:9000'因此是不允许的 访问。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseIISPlatformHandler();
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseCors(policy => policy
.WithOrigins("http://localhost:9000")
.AllowAnyMethod()
.WithHeaders("Access-Control-Allow-Origin, Content-Type, x-xsrf-token, Authorization")
.AllowCredentials());
app.UseMvc();
}
根据chrome,没有一个标题被添加到响应中。
在Asp.NET 5中将access-control-allow-origin
标头添加到选项响应的正确方法是什么?
答案 0 :(得分:3)
考虑 Google Chrome浏览器an issue不支持 localhost 通过 Access-Control-Allow-Origin
在您的代码中,您已使用AddCors
方法中的UseCors
和Configure
方法启用了CORS,请确保您已按照{{3}中的说明进行操作({{1>}方法中使用的)和Specifying a CORS Policy
您也可以简单地写一个How to enable CORS in ASP.NET 5。
ConfigureServices
:使用它来启用CORS请求
仅适用于Web API。Microsoft.AspNet.WebApi.Cors
:使用它为MVC控制器启用CORS。Microsoft.AspNet.Cors
:使用它为所有交叉来源启用CORS
请求来到您的网站,例如,当您想要时
为Web API和SignalR启用CORS。答案 1 :(得分:2)
这没有任何意义,但正如@Sirwan建议的那样,使用.AllowAnyHeader()
设置对选项响应的访问权限......
答案 2 :(得分:0)
要克服预检问题在你的API中添加与[httpoption]
同名的方法,并从那里返回成功,现在只需运行你的web /客户端应用程序,你会在httpoption方法第一次点击同样的方法两次,然后你原来的
答案 3 :(得分:0)
将其放在startup.cs
文件的configure部分中:
app.UseCors (x => x.AllowAnyOrigin ().AllowAnyMethod ().AllowAnyHeader ());