jquery – 带有DELETE的$.ajax丢失参数

前端之家收集整理的这篇文章主要介绍了jquery – 带有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

猜你在找的jQuery相关文章