PHP 判斷 AJAX Request (XHRs) 的方法

PHP 要判斷 Request 是 AJAX 發送過來(吐 JSON), 還是一般正常的網頁瀏覽(吐 HTML), 要怎麼做?

PHP 判斷 AJAX Request (XHRs) 的方法

可以由 HTTP Header (HTTP_X_REQUESTED_WITH = xmlhttprequest) 來判斷是否是 AJAX 的 Request.

<?php
function is_ajax()
{
    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
}
?>

模擬測試

透過 wget 模擬測試 (Simulate) XHRs 的 Request

  • wget --header="X-Requested-With: XMLHttpRequest" http://example.com/ # 存檔
  • wget --header="X-Requested-With: XMLHttpRequest" -qO- http://example.com/ # 將結果 直接印在 Terminal.

透過 curl

  • curl -H "X-Requested-With: XMLHttpRequest" ...
  • <?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Requested-With: XMLHttpRequest"));
    $result = curl_exec($ch);
    curl_close($ch);
    ?>

相關網頁


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 Programming 並標籤為 , , , 。將永久鏈結加入書籤。

發表迴響

This site uses Akismet to reduce spam. Learn how your comment data is processed.