【问题标题】:How to know the request is preflight and not the actual request?如何知道请求是预检而不是实际请求?
【发布时间】:2017-03-16 10:49:24
【问题描述】:

我正在使用 CORS 将数据发送到位于另一个域中的服务器。

浏览器发送第一个请求以检查服务器(预检),然后发送主请求。我想知道请求什么时候被“预检”,所以我可以更快地返回标头。

我想要这样的东西:

if (isPreflight) {
   header('Access-Control-Allow-Origin: *');
   exit;
} else {
   // handle the main request
}

【问题讨论】:

    标签: javascript php cors cross-domain


    【解决方案1】:

    找到了一种方法来做到这一点。

    只需将 CORS 标头放在“处理数据方法”之前,如果请求方法是 OPTIONS(这是默认的预检方法),则退出脚本,如果它是可接受的方法之一(GET、POST 或任何其他方法)否则),处理数据。

    header('Access-Control-Allow-Origin: *');
    
    if ($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
        exit;
    
    } else {
        /*handle data*/
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 2020-12-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      相关资源
      最近更新 更多