【问题标题】:pre-flight OPTIONS request for CORSCORS 的飞行前 OPTIONS 请求
【发布时间】:2016-06-28 22:45:16
【问题描述】:

我在开发中使用这样的中间调用 cors

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

对于每个路由请求,我开始看到 2 个请求:

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

【问题讨论】:

    标签: javascript angularjs node.js cors


    【解决方案1】:

    是的,它将继续发生。不,这不是问题,除非您创建的路线与之冲突。

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

    来自Mozilla MDN

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

    ...

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

    【讨论】:

    • 我正在创建一个需要 Restful API 的应用程序,在开发中我的应用程序在 localhost 上运行,因此它需要 cors,但在生产中您认为我需要在服务器端设置 cors 吗?跨度>
    • @Jennifer 你会想作为一个单独的问题来问这个问题。
    猜你喜欢
    • 2018-04-13
    • 2014-12-27
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2019-11-13
    • 2016-06-26
    • 2019-05-23
    相关资源
    最近更新 更多