Kohana はリクエストが AJAX かどうかをどのように判断しますか?
リファラー文字列に違いはありますか? おそらくGETパラメータを追加する必要があり?ajax=true
ますか?
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');
}
これが私のグーグル検索で最初に出てきたのでネクロ投稿。
Kohana がまだこのように機能するかどうかはわかりませんが、HTTP_X_REQUESTED_WITH を使用することはもはやベスト プラクティスではありません。
Ajax リクエスト (実際にはすべての HTTP リクエスト) は、「Accept」ヘッダーを送信する必要があります。
サーバー側のプロセスでは、"Accept" ヘッダーを調べて、応答として送信するコンテンツを決定する必要があります。PHP でこれを行う 1 つの方法は次のとおりです。
function is_ajax() {
return $_SERVER['HTTP_ACCEPT'] == 'application/json';
}