AngularJS $resource Заголовки POST

Я хотел бы знать, как передать заголовки методу AngularJS $resource

Вот заводской метод

.factory('DataRepository', function ($resource) {
            return $resource(serviceUrlPrefix + '/api/v1/AppList/:id', { id: '@id' }, { 'query': { method: 'GET', isArray: false }, 'update': { method: 'PUT', AppList: '@req', headers: { 'X-Requested-With': 'XmlHttpRequest' } } });
        });

Вот вызов dataRepository

dataRepository.update({ id: req[uniqueIDColumn] }, req, function (data) {                
        },
         function (error) {
         });

Этот код работает нормально. Но у меня есть несколько вопросов

Вопрос 1. Как я могу указать заголовки в фабричном методе вместо указания заголовков в вызове фабричного метода? Я пробовал несколько методов, но это не сработало.

Вопрос 2: я указал заголовок в методе обновления на заводе. Когда я выполняю «Сохранить» с использованием этой фабрики, этот заголовок был взят по умолчанию. Но я указал это явно для метода PUT. Верно? Почему и как?

Вопрос 3: Если я хочу указать заголовок для конкретной фабрики, общий для всех методов HTTP, как это сделать?

Вопрос 4: Какова номенклатура для передачи параметров и значение символа «@» перед параметром, а также в нижней части AppList — это имя параметра, используемое в WebAPI, обязательно ли это должно совпадать с именем параметра в методе WebAPI, если оно не совпадает, оно не работает :(

AppList: '@req'

person TechQuery    schedule 03.09.2015    source источник


Ответы (1)


Боюсь, мы не используем $resource, но он зависит от $http. Мы настраиваем заголовок с ниже. Не уверен насчет остальных ваших вопросов.

Я скажу, что мы также не используем $http напрямую. Мы создали собственный сервис requestHelper, который внедряем везде. Это позволяет нам вводить вещи перед выполнением вызовов $http, а также перехватывать ответ перед передачей результата реальному вызывающему объекту. Помогает с обработкой распространенных ошибок.

Настройте заголовки для $http:

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

person Rob    schedule 08.09.2015
comment
Спасибо, Роб. Мне еще предстоит проверить это, и я предполагаю, что установка заголовка по умолчанию в вышеупомянутом подходе также подойдет для $ ресурса. Пожалуйста, поправьте меня, если я ошибаюсь. - person TechQuery; 17.09.2015