PHPがAjaxかどうかを確認する方法

王林
リリース: 2023-02-24 15:50:01
オリジナル
3093 人が閲覧しました

PHPがAjaxかどうかを確認する方法

今日は、M_Controller で次のコードに遭遇したので、ajax リクエスト、ポストリクエスト、REQUEST_TIME、time() 関数の違いを判断する方法について少し学びました。

define('IS_AJAX', $this->input->is_ajax_request());
define('IS_POST', $_SERVER['REQUEST_METHOD'] == 'POST' && count($_POST) ? TRUE : FALSE);
define('SYS_TIME', $_SERVER['REQUEST_TIME'] ? $_SERVER['REQUEST_TIME'] : time());
ログイン後にコピー

is_ajax_request() メソッドは、CI で ajax リクエストが行われたかどうかを判定するメソッドで、公式ドキュメントでは「サーバーヘッダーに HTTP_X_REQUESTED_WITH## が含まれているかどうかを確認する」と説明されています。 # 、存在する場合は TRUE を返し、存在しない場合は FALSE を返します。

もちろん、そのような判断は完璧ではありません。判断に含まれる原則は次のとおりです:

jquery 経由で ajax リクエストを送信すると、X- という名前の ajax ヘッダーが送信されます。 Requested-With 情報のデフォルトの内容は次のとおりです。 XMLHttpRequest。これは、CI フレームワークが ajax リクエストを判断するための基礎となります。

しかし、ネイティブ JS を使用する場合、どうやって判断すればよいのでしょうか?

xmlHttpRequest.setRequestHeader("request_type","ajax");
ログイン後にコピー
XMLHttpRequest オブジェクトに従って、ヘッダーを手動で設定します。上記の設定が完了すると、PHP ロジック コードで次のようにヘッダーを取得できます。ヘッダーに設定 ##equest_type

バックグラウンドで取得する場合、HTTP_のプレフィックス文字列を追加して、フロントデスクから送信されたヘッダー情報を取得します。つまり、

$_SERVER['HTTP_REQUEST_TYPE']##を呼び出します。 # フロントデスクから送信されたヘッダー情報を取得します。 値: ajax、もちろん request_type を他のフィールドに設定することもできます。

上記の内容は参考用です。 推奨チュートリアル: PHP ビデオ チュートリアル

以上がPHPがAjaxかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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