【发布时间】:2016-03-08 16:26:09
【问题描述】:
我在 Chrome 中收到以下错误:
对预检请求的响应未通过访问控制检查:请求中不存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“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 标头添加到选项响应的正确方法是什么?
【问题讨论】:
-
这是最前沿的,所以我没有太多时间玩它,但你所做的似乎与官方文档不相符:docs.asp.net/en/latest/security/cors.html不是说它是不正确,但你在哪里找到你的指导?鉴于您显然正在设置 CORS 策略,我不会认为您需要显式设置
Access-Control-Allow-Origin标头。 -
我真的不记得很久以前我必须让页面工作的标准 GET 请求时放入的 app.UseCors 块。 (没有它他们就无法工作)。但是现在我有更复杂的请求,浏览器正在发送一个预检请求,这段代码不起作用。
-
另外我要指出的是那里的文档实际上已经过时了(尽管是最新的)。
-
你为什么不用
.AllowAnyHeader();?
标签: asp.net asp.net-mvc cors asp.net-core