1
Я пытаюсь отправить команду DELETE, используя $ http.delete, но я получаю сообщение об ошибке:
TypeError --> Cannot create property 'method' on string 'user_id=5&response=This+is+a+test.'
, когда я выполнить команду в контроллере следующим образом:
в контроллере:
.controller(myController', function($scope) {
var something = {
user_id: 1,
text: 'This is a test.'
}
MyFactory.deleteSomething(something);
});
в службе:
.factory('MyFactory', function($http) {
var service = {};
service.deleteSomething = function(something) {
var data = $.param(something);
var promise = $http.delete('http://example.com/myapp.php?',
data, {
headers: {
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
}
})
.success(function(data,status) {
console.log("Delete success!");
return data;
})
.error(function(data, status, header, config) {
console.log("Delete FAILED!");
});
return promise;
}
return service;
});
Что мне здесь не хватает?
не то, что 'данные вар = $ .param (что-то),' для? Просто переходите к [этому ответу на SO] (http://stackoverflow.com/questions/22055251/sending-data-with-angularjs-http-delete-request). – lilbiscuit
Как вы можете видеть в своем собственном сообщении об ошибке, '$ .param (something)' возвращает строку, содержащую параметры запроса на основе объекта '' user_id = 5 & response = This + is + a + test.'' Вы, вероятно, захотите что-то противоположное этому. – enapupe
Это разрешило это: измените 'var data = $ .param (что-то);' to 'var data = {params: something};' – lilbiscuit