2017-08-07 26 views
1

我已经实现了在点网核心应用一个Cors政策: 在Startup.csConfigureServices下,我加入了以下政策CORS两个呼叫:以http 204和200

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

我面对一个陌生的在添加CORS策略后发出问题,在从UI接收的每个后期调用中,有两个调用第一次调用返回204,而其他调用返回具有200状态代码的数据。

two calls on post request

回答

4

第一个是preflighted request。主要目标是确定实际请求是否安全发送。由于可能会影响用户数据,因此跨站点请求会受到预先验证。

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

这是一个OPTIONS请求使用两个HTTP请求标头:访问控制请求方法和访问控制请求头和Origin标头。

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

这个HTTP access control (CORS)描述条件,如果是的话,那么请求是预检的。

+1

有没有办法禁用这个飞行前电话?我在前端使用了angularjs。 – Nikitesh

+1

@NikiteshKolpe看看SO [如何禁用OPTIONS请求](https://stackoverflow.com/questions/29954037/how-to-disable-options-request) – Set