この記事では、PHP が AJAX リクエストかどうかをどのように判断するかについて説明します。 。
Jquery
jqueryによって送信されるajaxリクエストは、リクエストヘッダーにX-Requested-With情報を追加し、その情報の内容はXMLHttpRequestであるため、phpは$_SERVERグローバル配列を使用してそれがajaxリクエストであるかどうかを判断できます
//php は、それが ajax のリクエストであるかどうかを判断します
if (isset($_SERVER["HTTP_X_REQUESTED_WITH"] && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"] == 'xmlhttprequest')){ // 是ajax请求 } else { // 不是ajax请求 }
これは、ajax リクエストであると判断される TP の定数 IS_AJAX を思い出させます
この定数がどのように定義されているかを見てみましょう
ThinkPHP (3.2.2) in ThinkPHP/Library /Think/APP.class.php (Line: 49)
define('IS_AJAX', ((isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') || !emtpty($_POST(C('VAR_AJAX_SUBMIT')] || !empty($_GET[C('VAR_AJAX_SUBMIT')])) ? true : false);
ThinkPHP がこの原則を使用しているか、フォームでネイティブ JS によって開始された ajax リクエストを送信していることがわかります
リクエストヘッダー情報を自分で追加する必要があるため、バックグラウンドでのみ判断できます
フロントエンドでリクエストヘッダーを追加するコードは次のとおりです:
var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET","test.php",true); xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xmlhttp.send();
この記事では、PHPがリクエストヘッダーであるかどうかをどのように判断するかを説明しますAJAX リクエスト その他の関連コンテンツについては、php 中国語 Web サイトに注目してください。
関連する推奨事項:
PHP プログラムによって報告される date() 警告を処理するための解決策 PHP 開発における同時実行の問題を解決するためのいくつかの実装方法 ケースの発見 テーブル データを迅速にエクスポートする方法に関するチュートリアルPHP以上がPHP はそれが AJAX リクエストであるかどうかをどのように判断するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。