如何知道请求是预检而不是实际请求?

时间:2016-11-02 23:36:31

标签: javascript php cors cross-domain

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

浏览器发送第一个检查服务器的请求(预检),然后发送主请求。我想知道请求何时被预检",所以我可以更快地返回标题。

我想要这样的事情:

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

1 个答案:

答案 0 :(得分:0)

找到了一种方法。

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

header('Access-Control-Allow-Origin: *');

if ($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
    exit;

} else {
    /*handle data*/
}