得到:$ . GET (. .)

职位:$ . POST () . .

PUT/DELETE呢?


当前回答

我写了一个jQuery插件,它包含了这里讨论的跨浏览器支持的解决方案:

https://github.com/adjohnson916/jquery-methodOverride

点击这里查看详情!

其他回答

阿贾克斯()

寻找参数类型

这里也可以使用其他HTTP请求方法,如PUT和DELETE,但并非所有浏览器都支持它们。

美元。Ajax可以工作。

$.ajax({
   url: 'script.php',
   type: 'PUT',
   success: function(response) {
     //...
   }
});

你可以在你的数据散列中包含一个名为:_method的键,值为'delete'。

例如:

data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
  alert('Yupi Yei. Your product has been deleted')
});

这也适用于

你可以用AJAX来做!

PUT法:

$.ajax({
  url: 'path.php',
  type: 'PUT',
  success: function(data) {
    //play with data
  }
});

对于DELETE方法:

$.ajax({
  url: 'path.php',
  type: 'DELETE',
  success: function(data) {
    //play with data
  }
});

我们可以扩展jQuery来创建PUT和DELETE的快捷方式:

jQuery.each( [ "put", "delete" ], function( i, method ) {
  jQuery[ method ] = function( url, data, callback, type ) {
    if ( jQuery.isFunction( data ) ) {
      type = type || callback;
      callback = data;
      data = undefined;
    }

    return jQuery.ajax({
      url: url,
      type: method,
      dataType: type,
      data: data,
      success: callback
    });
  };
});

现在你可以使用:

$.put('http://stackoverflow.com/posts/22786755/edit', {text:'new text'}, function(result){
   console.log(result);
})

从这里复制