Ответ 1
angular.module('myModule', [])
.config(['$httpProvider', function($httpProvider) {
delete $httpProvider.defaults.headers.common["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 не отправлять этот заголовок...
angular.module('myModule', [])
.config(['$httpProvider', function($httpProvider) {
delete $httpProvider.defaults.headers.common["X-Requested-With"]
}])
Я обнаружил, что, кроме ответа Justen, я также могу сделать это на основе запроса следующим образом:
delete $http.defaults.headers.common['X-Requested-With']
Смотрите журнал изменений:
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';
}]);