4

Kohana はリクエストが AJAX かどうかをどのように判断しますか?

リファラー文字列に違いはありますか? おそらくGETパラメータを追加する必要があり?ajax=trueますか?

4

3 に答える 3

5

v2.3.4 以降

/**
 * Tests if the current request is an AJAX request by checking the 
 * X-Requested-With HTTP request header that most popular JS frameworks 
 * now set for AJAX calls.
 *
 * @return  boolean
 */

public static function is_ajax()
{
  return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND 
          strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
}
于 2009-08-17T13:01:44.880 に答える
1

これが私のグーグル検索で最初に出てきたのでネクロ投稿。

Kohana がまだこのように機能するかどうかはわかりませんが、HTTP_X_REQUESTED_WITH を使用することはもはやベスト プラクティスではありません。

Ajax リクエスト (実際にはすべての HTTP リクエスト) は、「Accept」ヘッダーを送信する必要があります。

サーバー側のプロセスでは、"Accept" ヘッダーを調べて、応答として送信するコンテンツを決定する必要があります。PHP でこれを行う 1 つの方法は次のとおりです。

  function is_ajax() {
    return $_SERVER['HTTP_ACCEPT'] == 'application/json';
  }
于 2013-10-25T18:00:13.833 に答える