Подтвердить что ты не робот

$ 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?

Ссылка:

4b9b3361

Ответ 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';