jquery - $.ajax 与 DELETE 丢失参数

标签 jquery

在我的客户端应用程序(用 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/

相关文章:

jquery - 可以调整大小或仅移动元素的背景颜色吗?

jquery - 如何暂停正在运行的动画并使用jquery中的一个按钮运行另一个动画

java - 当输入查询只是数据的一部分时,如何使用 Room 从数据库中获取数据?

javascript - JavaScript 中变量的局部和全局作用域

javascript - JQuery 表单验证无法正常工作需要修复吗?

jquery - 如何使用CSS按钮在表单中发布方法?

jqueryui组合框: how do I get the value?

php - 如何在树复选框上实现 jquery(从头开始构建 - 无插件)

javascript - 我怎样才能滚动到#target - 100px?

jquery - 页面加载后部分渲染