ホームページ >バックエンド開発 >PHPチュートリアル >php はそれが ajax リクエストであるかどうかをどのように判断しますか?
プログラムのセキュリティ上の理由から、場合によっては、リクエストが AJAX リクエストであるかどうかを検出する必要があります。
この記事ではその体験を簡単に紹介します。
1. ネイティブ JavaScript を使用して Ajax リクエストを発行する場合、バックエンドの PHP プログラムが区別しやすいようにリクエスト ヘッダーに情報を追加できます。その方法は次のとおりです。
var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET","test.php",true); xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); xmlhttp.send();ここでは、値 XMLHttpRequest を使用して X_REQUESTED_WITH 情報をヘッダーに追加します。もちろん、ここの値は www.phpernote.com のように自由に設定できます。このようにして、受信側の php プログラムで次のように記述することができます:
<?php // php 判断是否为 ajax 请求 if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])&&strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest'){ // ajax 请求的处理方式 }else{ // 正常请求的处理方式 }2. 現在普及している JS フレームワーク jquery は、これを十分に考慮して、jQuery が ajax リクエストを発行するときに、X-Requested-With という名前のメッセージをリクエストのヘッダーに追加します。 , したがって、バックエンドの PHP も上記のコードを使用して判断できます。
注: jquery リクエストが iframe 経由で Web ページを開く場合、HTTP_X_REQUESTED_WITH パラメーターは渡されません。つまり、リクエストのタイプを判断する方法がありません。