jQuery.ajax()
обычно отправляет заголовок X-Requested-With
с XMLHttpRequest
в качестве содержимого. На сервере (в PHP) я обычно обнаруживаю это путем тестирования:
$is_ajax = $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest'
В AngularJS, обычно найденном в $routeProvider.when()
, вы можете получить шаблон с сервера с помощью templateUrl: '/path/on/server'
.
Моя проблема, что templateUrl
запросы, похоже, не устанавливают заголовки X-Requested-With
, поэтому нет способа отличить запросы templateUrl
от любого другого типа запроса.
Есть ли способ получить $routeProvider
для отправки X-Requested-With
как XMLHttpRequest
?
Ссылка:
-
$routeProvider Docs - (поиск
templateUrl
) -
jQuery jqXHR - см.
jqXHR.setRequestHeader("X-Requested-With", "XMLHttpRequest")
-
Использование Angular
v1.1.5
через Google CDN -
Обновление: я нашел фактическую фиксацию, где Angular разработчики удалили
X-Requested-With
из$http.get
. Интересно, почему они это сделают? -
Обновление: https://github.com/angular/angular.js/issues/1004 - обсуждение, где заголовок был удален.