带有DELETE的$ .ajax丢失参数

在我的客户端应用程序 – 用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”的请求! 只是一个简单的DELETE(根据firebug)。 使用PUT,POST或GET它可以很好地工作。

有趣。 我在RFC中找不到任何东西但是有理由认为没有办法使用DELETE方法传递参数 – 仅在GET和POST中,所以JQuery或浏览器都正确地过滤掉参数。 不过,这只是一个猜测,也许有些人心里明白这个东西可以做出更深刻的陈述。

无论如何,如果这就是JQuery现在的工作方式,我认为你的解决方法必须将ID放入URL中,然后mod_rewrite出来。

在您这样做之前,尝试通过将参数添加到URL来欺骗浏览器传递它: sitesCtrl.url+'?ID='+id