客户端如何模拟delete方法,请求数据?

来源:互联网 发布:淘宝被投诉盗图扣几分 编辑:程序博客网 时间:2024/04/30 06:45
在Rest接口定义中,删除数据都是使用delete方法请求,但大部分浏览器并不支持该方法请求,该如何做?

Rails使用的方法使用Post模拟delete方法
delete 方法其实是post 方法,不过在传递参数的时候,需要增加如下的字段
_method: delete
所以,不要使用get请求 delete方法,需要使用post,并且带上一个额外的参数 _method=delete 即可

当然,还需要增加 csrf_param 的值,否则,该操作无法完成。

jquery_ujs的具体实现如下
    // Handles "data-method" on links such as:    // <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>    handleMethod: function(link) {      var href = rails.href(link),        method = link.data('method'),        target = link.attr('target'),        csrf_token = $('meta[name=csrf-token]').attr('content'),        csrf_param = $('meta[name=csrf-param]').attr('content'),        form = $('<form method="post" action="' + href + '"></form>'),        metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';      if (csrf_param !== undefined && csrf_token !== undefined) {        metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';      }      if (target) { form.attr('target', target); }      form.hide().append(metadata_input).appendTo('body');      form.submit();    },


原创粉丝点击