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;
});
我在這裏錯過了什麼?
這不就是'VAR數據= $ .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(something);'var var = {params:something};' – lilbiscuit