使用JQuery发送带有数据参数的ajax DELETE请求

4
JQuery 1.8或1.7.2是否支持在DELETE ajax请求中使用数据参数,例如:
$.ajax({
    url: '/config/delete',
    type: 'DELETE',
    data: {id:'blah'}
}

如果不行,解决方法可能是:
$.ajax({
    url: '/config/delete?id=blah',
    type: 'DELETE'
}

我的问题:

  1. 我看到有些人明确表示不想使用第二种方法,但是为什么?是否存在任何安全原因?

  2. 如果第一种方法不起作用,第二种方法又不好,那么这里的替代方案是什么?发送一个带有方法参数的POST请求,例如data:{... method:'delete'}?


https://dev59.com/rW025IYBdhLWcg3wnncw - Ashirvad
@AshirvadSingh,谢谢你,但是上面的问题不同。我特别想知道“DELETE”请求的正文参数部分,而不是它与浏览器的兼容性。 - skyork
1个回答

0

DELETE HTTP 请求方法没有 body 来携带一些数据。

所以无论使用哪种方法,id=blah 或者 {id:'blah'} 都不会被传递。
这不是由于 jQuery 版本的问题,而是由于 HTTP 方法本身的性质。

使用 DELETE 方法是为了删除访问的资源。
文件 /config/delete 不会被执行,而是从服务器中删除。

此外,这种方法在 HTML 表单中是不允许的... 所以它不能通过 Ajax 工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接