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

Как предотвратить объект angular.js $http от отправки заголовка X-Requested-With?

Angular.js при доступе к веб-службе с использованием объекта $http автоматически добавляет заголовок X-Requested-With: XMLHttpRequest к запросу.

Веб-служба, к которой я обращаюсь, используя CORS, не поддерживает заголовок X-Requested-With, поэтому я попытался ее устранить, но я не могу ухватить объект $httpProvider. Я получаю объектную ошибку undefined, и если я ссылаюсь на нее в параметрах контроллеров, чтобы angular ввел ее, я получаю сообщение об ошибке: Неизвестный поставщик: $httpProviderProvider < - $httpProvider "

Так интересно, как я могу получить доступ к $httpProvider, как это говорится в документах (http://docs.angularjs.org/api/ng.$http), чтобы сообщить angular.js не отправлять этот заголовок...

4b9b3361

Ответ 1

angular.module('myModule', [])
    .config(['$httpProvider', function($httpProvider) {
        delete $httpProvider.defaults.headers.common["X-Requested-With"]
    }])

Ответ 2

Я обнаружил, что, кроме ответа Justen, я также могу сделать это на основе запроса следующим образом:

delete $http.defaults.headers.common['X-Requested-With']

Ответ 3

Поскольку Angular JS версия 1.1.1 удаление заголовка больше не требуется.

Смотрите журнал изменений:
https://github.com/angular/angular.js/blob/master/CHANGELOG.md#111-pathological-kerning-2012-11-26

Для таких людей, как я, которые использовали заголовок для идентификации запросов ajax и отвечали на них по-разному.

например. делая запрос после окончания сеанса.

Вы можете снова включить заголовок следующим образом:

angular.module('yourModule', [])
.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);