PHP はそれが AJAX リクエストであるかどうかをどのように判断するのでしょうか?

jacklove
リリース: 2023-03-27 15:16:01
オリジナル
8731 人が閲覧しました

この記事では、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート