【问题标题】:Two calls on Post request: with http 204 and 200对 Post 请求进行两次调用:使用 http 204 和 200
【发布时间】:2023-03-23 14:10:01
【问题描述】:

我已经在 dot net core 应用程序中实现了 Cors 策略: 在Startup.cs 下ConfigureServices 我添加了以下cors 政策

services.AddCors(options =>{
                options.AddPolicy("CorsPolicy",
                    builder => builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials());
            });

添加 CORS 策略后,我遇到了一个奇怪的问题,在来自 UI 的每个 POST 调用中,都会进行两次调用:第一次调用返回 204,其他调用返回带有 200 状态码的数据。

【问题讨论】:

    标签: asp.net-core cors .net-core


    【解决方案1】:

    第一个是preflighted request。主要目标是确定实际请求是否可以安全发送。跨站点请求会被预检,因为它们可能会对用户数据产生影响。

    CORS 预检请求是检查 CORS 协议是否被理解的 CORS 请求。

    这是一个OPTIONS 请求,使用两个 HTTP 请求标头:Access-Control-Request-Method 和 Access-Control-Request-Headers,以及 Origin 标头。

    浏览器会在需要时自动发出预检请求。

    HTTP access control (CORS) 描述了如果为真则预检请求的条件。

    【讨论】:

    • 有没有办法禁用这个飞行前呼叫?我在前端使用 angularjs。
    • @NikiteshKolpe 调查 SO How to disable OPTIONS request
    • 有同样的“问题”。现在它是有道理的。我正在调试我的 Angular 代码,如果有 2 个调用
    • 那么204 No Content 请求是CORS 预检请求吗?
    猜你喜欢
    • 2018-06-20
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2018-12-24
    • 2013-10-08
    • 1970-01-01
    相关资源
    最近更新 更多