如何在除头之外的ajax DELETE请求中传递数据

时间:2013-02-26 12:18:33

标签: jquery ajax

以下是我对DELETE请求的Ajax请求:

deleteRequest: function (url, Id, bolDeleteReq, callback, errorCallback) {
    $.ajax({
        url: urlCall,
        type: 'DELETE',
        headers: {"Id": Id, "bolDeleteReq" : bolDeleteReq},
        success: callback || $.noop,
        error: errorCallback || $.noop
    });
}

是否有其他方法可以传递除headers以外的数据?

3 个答案:

答案 0 :(得分:91)

阅读此错误问题:http://bugs.jquery.com/ticket/11586

引用RFC 2616 Fielding

  

DELETE方法请求源服务器删除Request-URI 标识的资源

所以你需要传递URI中的数据

$.ajax({
    url: urlCall + '?' + $.param({"Id": Id, "bolDeleteReq" : bolDeleteReq}),
    type: 'DELETE',
    success: callback || $.noop,
    error: errorCallback || $.noop
});

答案 1 :(得分:0)

我能够通过 ajax方法成功地通过data属性。这是我的代码

$.ajax({
     url: "/api/Gigs/Cancel",
     type: "DELETE",
     data: {
             "GigId": link.attr('data-gig-id')
           }

  })

link.attr 方法仅返回'data-gig-id'的值。

答案 2 :(得分:-5)

deleteRequest: function (url, Id, bolDeleteReq, callback, errorCallback) {
    $.ajax({
        url: urlCall,
        type: 'DELETE',
        data: {"Id": Id, "bolDeleteReq" : bolDeleteReq},
        success: callback || $.noop,
        error: errorCallback || $.noop
    });
}

注意:在JQuery 1.5中引入了headers的使用。:

  

要与请求一起发送的其他标头键/值对的映射。在调用beforeSend函数之前设置此设置;因此,可以从beforeSend函数中覆盖标题设置中的任何值。