当前位置:  开发笔记 > 编程语言 > 正文

带有DELETE的$ .ajax丢失参数

如何解决《带有DELETE的$.ajax丢失参数》经验,为你挑选了1个好方法。

在我的客户端应用程序 - 用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它可以很好地工作.



1> Pekka suppor..:

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

无论如何,如果这就是JQuery现在的工作方式,我认为您的解决方法必须将ID放入URL中,并将其设置为mod_rewrite.

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

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有