Вопрос

Как Kohana определяет, является ли запрос AJAX?

Есть ли что-нибудь другое в строке реферера?Возможно, мне нужно добавить параметр GET ?ajax=true ?

Это было полезно?

Решение

Он проверяет, сделан ли запрос XMLHttpRequest, поскольку в этом случае большинство браузеров отправляют заголовок с таким указанием:заголовок HTTP_X_REQUESTED_WITH будет установлен на XMLHttpRequest.

Другие советы

Начиная с версии 2.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');
}

Некропостинг, потому что он появился первым в моем поиске в Google.

Не знаю, работает ли Kohana по-прежнему таким образом, но использование HTTP_X_REQUESTED_WITH больше не является лучшей практикой.

Запросы Ajax — фактически все HTTP-запросы — должны отправлять заголовок «Accept».

Любой серверный процесс должен проверять заголовок «Accept», чтобы определить, какой контент отправить в ответ.Один из способов сделать это в PHP:

  function is_ajax() {
    return $_SERVER['HTTP_ACCEPT'] == 'application/json';
  }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top