$ routeProvider: запросы templateUrl с заголовком X-Requested-With
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
?
Ссылка:
Ответы
Ответ 1
Совет шапки Zerot в FreeNode # angularjs
app.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$routeProvider.when('/', {
templateUrl: '/path/on/server',
controller: 'Ctrl'
});
});
Изменить: чтобы быть более конкретным, это то, что вам нужно где-то:
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';