【发布时间】:2016-06-28 22:45:16
【问题描述】:
我在开发中使用这样的中间调用 cors
app.use(cors({origin: 'http://localhost:8100'}));
对于每个路由请求,我开始看到 2 个请求:
这还会在生产中发生吗?这是个问题吗?
【问题讨论】:
标签: javascript angularjs node.js cors
我在开发中使用这样的中间调用 cors
app.use(cors({origin: 'http://localhost:8100'}));
对于每个路由请求,我开始看到 2 个请求:
这还会在生产中发生吗?这是个问题吗?
【问题讨论】:
标签: javascript angularjs node.js cors
是的,它将继续发生。不,这不是问题,除非您创建的路线与之冲突。
OPTIONS 请求被浏览器用来检测服务器对该特定端点的 CORS 支持。
来自Mozilla MDN:
...对于可能对用户数据造成副作用的 HTTP 请求方法(特别是对于 GET 以外的 HTTP 方法,或者对于某些 MIME 类型的 POST 使用),规范要求浏览器“预检”请求,使用 HTTP OPTIONS 请求方法从服务器请求支持的方法,然后,在服务器“批准”后,使用实际的 HTTP 请求方法发送实际请求。
...
与简单的请求(上面讨论过)不同,“预检”请求首先通过 OPTIONS 方法向另一个域上的资源发送 HTTP 请求,以确定实际请求是否可以安全发送。跨站点请求是这样预检的,因为它们可能会对用户数据产生影响。
【讨论】: