【问题标题】:Angular2 WebApi -- Pre-flight calling controller, PUTfailsAngular2 WebApi——飞行前调用控制器,PUTfails
【发布时间】: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();

       -
       -
   }

Request and Response headers

【问题讨论】:

    标签: angular cors


    【解决方案1】:

    问题出在我的操作结果中。

    返回确定();是我应该回来的。

    我返回了一个 CreatedAtRoute,不知道为什么它在网络选项卡中显示为 Cors 错误

    【讨论】:

      猜你喜欢
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多