ヘッダーにxmlhttp情報を追加して判定。"/> ヘッダーにxmlhttp情報を追加して判定。">
php で ajax リクエストかどうかを判断する方法: 1. "if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]){...}" メソッドを通じて判断します; 2. xmlhttp 情報を追加することによって判断します。判定.
この記事の動作環境:Windows7システム、PHP7.1バージョン、Dell G3コンピュータ
php が ajax リクエストであるかどうかを判断する方法
PHP は AJAX リクエストであるかどうかを判断します
まず、フロントエンドが jQuery を使用しているかどうかを区別する方法について話しましょう:
jQuery が ajax リクエストを発行すると、リクエスト内に大文字と小文字を区別せずに という名前の情報を追加します)
これにより、次のような ajax リクエストであるかどうかを判断できますthis:
// php 判断是否为 ajax 请求 http://www.cnblogs.com/sosoft/ if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ // ajax 请求的处理方式 }else{ // 正常请求的处理方式 };
ネイティブ JavaScript を使用して Ajax リクエストを発行する場合、バックエンドの学生が区別しやすいようにヘッダーに情報を追加することもできます。方法は次のとおりです:
var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET","test.php",true); xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); xmlhttp.send();
ここでは、jQuery と一貫性のある X_REQUESTED_WITH 情報をヘッダーに追加します。もちろん、区別するために他の情報に変更することもできます。
# OK、区別するメリットは何ですか? 2 つの例について話しましょう: 1. js ファイルが読み込まれていないとき 最後に、ユーザーがボタンまたはリンクをクリックしたとき、何が想定されていたかto be an ajax request become anormal request. 判断により、バックエンドは ajax 中に json データを出力せずにジャンプしました. これもグレースフル デグラデーションの一種です. 2. [A page] uses ajaxでログインする場合、[Bページ]は通常の方法でログインします 区別がないとバックエンドはほぼ同じコードを2回書く必要がありますが、区別があると重複したコードが消えます。 ## PHP の疑似静的機能をオンにします。 推奨: 「PHP ビデオ チュートリアル
」以上がPHPでAjaxリクエストかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。