今日は、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");
バックグラウンドで取得する場合、HTTP_のプレフィックス文字列を追加して、フロントデスクから送信されたヘッダー情報を取得します。つまり、
$_SERVER['HTTP_REQUEST_TYPE']##を呼び出します。 # フロントデスクから送信されたヘッダー情報を取得します。 値: ajax、もちろん request_type を他のフィールドに設定することもできます。上記の内容は参考用です。
推奨チュートリアル:
PHP ビデオ チュートリアル
以上がPHPがAjaxかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。