在我的客户端应用程序(用 javascript 和 jQuery 编写)中,我有一个函数,可以使用 DELETE 方法向我的服务器发出 $.ajax 请求。
代码是这样的:
this.delete_one = function(id){
console.log(id);
$.ajax({
url: sitesCtrl.url,
type: "delete",
dataType: 'json',
data: {"id": id},
success: function(data){
if (data.success){
$("sitesList").remove("#" + id + "\"");
}
else{
console.log(data.message);
}
},
error: function(){
console.log("internal error");
}
})
};
问题是服务器收到没有参数“id”的请求!只是一个简单的删除(根据 Firebug )。使用 PUT、POST 或 GET 效果很好。
最佳答案
有趣。我在 RFC 中找不到任何内容但按理说,没有办法使用 DELETE 方法传递参数 - 只能在 GET 和 POST 中传递,因此 JQuery 或浏览器都正确过滤掉了参数。不过,这只是一个猜测,也许熟记这些东西的人可以做出更深刻的陈述。
无论如何,如果这就是 JQuery 现在的工作方式,我认为您的解决方法必须将 ID 放入 URL,然后 mod_rewrite 出来。
在执行此操作之前,请尝试通过将参数添加到 URL 来欺骗浏览器是否可以通过:sitesCtrl.url+'?ID='+id
关于jquery - $.ajax 与 DELETE 丢失参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269094/