对Post请求进行两次调用:使用http 204和200

时间:2017-08-07 09:51:37

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

我在dot net core应用程序中实现了Cors策略:   在db.collection.aggregate([ {$unwind: '$injectionRecords'}, {$match: {machineID: 'machine1'}}, {$group:{_id: "$_id",count:{$sum:1}}} ], {explain: true}) 下的Startup.cs我添加了以下的角色政策

ConfigureServices

我在添加CORS策略后面临一个奇怪的问题,在每次POST调用时都会进行两次调用:第一次调用返回204,其他调用返回200状态代码的数据。

two calls on post request

1 个答案:

答案 0 :(得分:13)

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

  

CORS预检请求是一个CORS请求,用于检查CORS协议是否被理解。

     

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

     

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

HTTP access control (CORS)描述条件,如果为true,则请求预检。