Отправка Restangular DELETE или customDELETE с телом
Когда я попал в api с:
Как я могу попасть в api (не из приложения angular) с помощью:
Apiadress / endpoint / idnumber/?param=param
С удалением все работает нормально и как и ожидалось.
но когда я делаю это из Restangular, как это:
Restangular.one("endpoint").customDELETE(idnumber,params)
Я получаю такой ответ от сервера:
"detail": "неподдерживаемый тип носителя' text / plain; charset=UTF-8 ' в запросе."
Похоже, что удаление идет с телом на сервер, и я не могу найти, как это сделать. сила пустого тела.
(я видел это в других вопросах, поэтому я скажу, что заранее, да api находится в другом порту в моей машине dev, и у меня есть:
config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
])
Мне нравится Restangular, но эта проблема продолжает меня кусать. Спасибо!
3 ответов:
Ваша проблема заключается в типе контента, а не в том, что в запросе нет тела. (По крайней мере, я понял это из вашего вопроса.)
Попробуйте определить заголовок типа контента по умолчанию, который также должен использоваться Restangular:
RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});
Попробуйте это.
var restMyService = Restangular.all("MyService"); restMyService.customDELETE("myPath",{pramOne: $scope.pramOne}, {'Content-Type': 'application/json'}, idnumber) .then(function(res){ //To DO - Success }, function errorCallback() { //TODO Error Handle } );
Если вы хотите добавить полезную нагрузку запроса с customDelete, вы должны использовать это:
Restangular.all('path').customDELETE('', {}, {}, payloadObject);*Этот метод не добавляет параметры полезной нагрузки в URL, этот метод добавляет объект полезной нагрузки в тело.
Comments