ホームページ >バックエンド開発 >PHPチュートリアル >php はそれが ajax リクエストであるかどうかをどのように判断しますか?

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

WBOY
WBOYオリジナル
2016-06-20 13:03:151023ブラウズ

プログラムのセキュリティ上の理由から、場合によっては、リクエストが 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[&#39;HTTP_X_REQUESTED_WITH&#39;])&&strtolower($_SERVER[&#39;HTTP_X_REQUESTED_WITH&#39;])==&#39;xmlhttprequest&#39;){ 
    // ajax 请求的处理方式 
}else{ 
    // 正常请求的处理方式 
}
2. 現在普及している JS フレームワーク jquery は、これを十分に考慮して、jQuery が ajax リクエストを発行するときに、X-Requested-With という名前のメッセージをリクエストのヘッダーに追加します。 , したがって、バックエンドの PHP も上記のコードを使用して判断できます。

注: jquery リクエストが iframe 経由で Web ページを開く場合、HTTP_X_REQUESTED_WITH パラメーターは渡されません。つまり、リクエストのタイプを判断する方法がありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。