#angularjs #resources
#angularjs #Ресурсы
Вопрос:
Я отправляю запрос на удаление через angular $resource, однако он всегда выдает ошибку 415, а тело запроса было преобразовано в строку, которая выглядит как запрос get.
'use strict';
(function(angular, window){
var authsys = angular.module('authsysApp');
authsys.factory('$_privilege', ['$resource', '$q', '$notify', function($resource, $q, $notify){
var resource = {
//删除权限
batchRemovePrivilege: $resource(window.ctxPath '/rolepri/batchDeletePrivilegeFromRole', {}, {delete:{method: 'DELETE'}})
};
return {
batchRemovePrivilege: batchRemovePrivilege
};
function batchRemovePrivilege(params){
var q = resource.batchRemovePrivilege.delete(params).$promise;
return q.then(function(){
return true;
});
}
}]);
})(angular, window);
Ответ №1:
Попробуйте добавить заголовок к вашему запросу:
var resource = {
//删除权限
batchRemovePrivilege: function(params){
return $http({
method: 'DELETE',
url: window.ctxPath '/rolepri/batchDeletePrivilegeFromRole',
data: params,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
}
};
выполнить:
var q = resource.batchRemovePrivilege(params).$promise;
Комментарии:
1. спасибо за ваш ответ, поскольку мы используем ngResource для выполнения интерактивной работы, поэтому я не хочу нарушать это правило. разве мы не можем достичь цели с помощью ngResource?
2. Попробуйте добавить заголовок в $resource. возвращает $resource(window.ctxPath ‘/rolepri/batchDeletePrivilegeFromRole’, {}, {удалить:{метод: ‘УДАЛИТЬ’}, заголовки: { ‘Content-Type’: ‘application/x-www-form-urlencoded’ }})
3. Спасибо @Tal. Добавление заголовков: {‘Content-Type’: ‘application / json’} сработало для меня.