【发布时间】:2017-05-04 23:51:10
【问题描述】:
.netCore 上的 Angular 和 Webapi 新手。我遇到了一个奇怪的场景,或者我对 preflight/CORS 的理解不够好。看来我的 PUT 预检调用了我的控制器方法并执行它。我在控制器 put 方法中设置了一个断点并检查 .net 选项卡。仅显示飞行前。但是查看响应,它返回 204 no content。
查看 firebug 中的 .net 选项卡,CORS 的 PUT 失败并最终出现在 angular2 中的错误处理程序中。验证结果,webapi PUT 方法正确保存了所有内容。
我想我需要捕获飞行前选项请求并发送 200 响应。但不确定如何在.netCORE 中。我对正在发生的事情和原因感到困惑。任何建议将不胜感激。
在 startup.cs` 中启用了 Cors
public void ConfigureServices(IServiceCollection services)
{
var corsBuilder = new CorsPolicyBuilder();
corsBuilder.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().AllowCredentials();
services.AddCors(options =>
{
options.AddPolicy("AllowAll", corsBuilder.Build());
});
// Add framework services.
services.AddMvc();
-
-
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseCors("AllowAll");
app.UseMvc();
-
-
}
【问题讨论】: