飞行前OPTIONS请求CORS

时间:2016-03-14 01:55:03

标签: javascript angularjs node.js cors

我在开发中使用像这样的中间呼叫

app.use(cors({origin: 'http://localhost:8100'}));

并且对于每个路径请求,我开始看到2个请求:

enter image description here

这还会在生产中发生吗?这是个问题吗?

1 个答案:

答案 0 :(得分:3)

是的,它会继续发生。不,这不是问题,除非你创建一个与之冲突的路线。

浏览器使用OPTIONS请求来检测该特定端点的服务器的CORS支持。

来自Mozilla MDN

  

...对于可能对用户数据造成副作用的HTTP请求方法(特别是对于GET以外的HTTP方法,或对某些MIME类型的POST使用),规范要求浏览器"预检& #34;请求,使用HTTP OPTIONS请求方法从服务器请求支持的方法,然后,在"批准"从服务器,使用实际的HTTP请求方法发送实际请求。

     

...

     

与简单请求(如上所述)不同,"预先发布"请求首先通过OPTIONS方法向另一个域上的资源发送HTTP请求,以确定实际请求是否可以安全发送。跨站点请求是这样预检的,因为它们可能会对用户数据产生影响。