2010-01-28 106 views

回答

757

你可以使用ajax方法:

$.ajax({ 
    url: '/script.cgi', 
    type: 'DELETE', 
    success: function(result) { 
     // Do something with the result 
    } 
}); 
+52

只是注意,如果您使用的是IIS Web服务器和jQuery的'PUT'或'DELETE'请求返回404错误,你将需要在IIS中启用这些动词。我发现这是一个很好的资源:http://geekswithblogs.net/michelotti/archive/2011/05/28/resolve-404-in-iis-express-for-put-and-delete-verbs.aspx – TimDog 2012-01-12 21:03:59

+19

BE AWARE:''请求的类型(“POST”或“GET”),默认为“GET”注意:其他HTTP请求方法,例如PUT和DELETE,也可以在这里使用,但它们是不受所有浏览器支持。“#:http://api.jquery.com/jQuery.ajax/#options – andi 2013-12-02 08:11:28

+17

@andi按照http://stackoverflow.com/questions/1757187/which-browsers-dont-support -a-http-delete-with-jquery-ajax来自IE6的任何浏览器都支持这些http方法。除非您正在开发*古代*浏览器,否则可以安全地使用超越“GET”和“POST”的http方法。 – 2015-05-06 18:51:51

105

$.ajax会工作。

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

PUT需要'contentType:“application/json”' – KingRider 2016-07-22 13:45:41

+1

这个答案和Darin Dimitrov的有什么不同吗?我假设他们都是同时创建的,因此没有任何抄袭,但我没有看到这个答案增加了什么(除了940雅各布的声望之外)。 – 2017-02-16 05:06:54

4

ajax()

找PARAM

其他HTTP请求方法,如PUT和DELETE,能也可以在这里使用,但不支持所有浏览器。

5

您应该能够使用jQuery.ajax

负载使用HTTP请求 远程页面。


你可以指定哪些方法应该被使用,随着type option

请求的类型,使( “POST ”或 “ GET ”),默认是“ GET” 。
注意:其他 HTTP请求方法,如PUTDELETE,也可以在这里使用,但是 它们不支持所有的 浏览器。

+4

你知道哪些浏览器不支持'PUT'或'DELETE'? – 2011-08-10 19:55:12

+3

破碎的,如果他们不能够HTTP:^) – XTL 2012-06-15 12:08:16

0

您可以在数据散列中包含一个名为__的方法,其值为'delete'。

例如:

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

这也将适用于

+1

这只是一个职位。 – 2014-02-12 18:54:01

+0

这将与rails一起工作,_method用于在POST上传输http方法(尽管您应该只在表单中使用它们 - 它们只能执行get/post)。 – opsb 2014-07-11 14:52:06

+0

如果您使用POST方法从窗体执行此操作,这也可以与Laravel一起使用。 – 2015-02-07 19:00:21

9

here,你可以这样做:

/* Extend jQuery with functions for PUT and DELETE requests. */ 

function _ajax_request(url, data, callback, type, method) { 
    if (jQuery.isFunction(data)) { 
     callback = data; 
     data = {}; 
    } 
    return jQuery.ajax({ 
     type: method, 
     url: url, 
     data: data, 
     success: callback, 
     dataType: type 
     }); 
} 

jQuery.extend({ 
    put: function(url, data, callback, type) { 
     return _ajax_request(url, data, callback, type, 'PUT'); 
    }, 
    delete_: function(url, data, callback, type) { 
     return _ajax_request(url, data, callback, type, 'DELETE'); 
    } 
}); 

它基本上只是一个方法参数的$.post()副本适应。

61

我们可以扩展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); 
}) 

副本从here

+0

这真棒!非常感谢。我尝试了所有传统的$ .ajax变体,并没有任何运气。这工作像一个魅力。荣誉。 – mindtonic 2015-04-10 19:39:29

+0

删除并不期望*数据*,而不是说$ .get和$ .post可以有不同的签名,而在这里你将它硬编码为一个 – 2016-08-30 11:33:42

+0

@FranciscoPresencia - 1.删除不期望数据while put does ---->第三行处理这个场景 2. $ .get和$ .post可以有不同的签名 ---->这只是创建额外的jquery方法来删除和放置。获取和发布有他们自己的jquery方法。 – Mahesh 2018-01-10 03:02:28

2

你可以用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 
    } 
}); 
+1

在发布这个答案之前,这已经说了几年了。这只是噪音,完全没有什么新意。 – 2018-01-14 08:45:01

2

为了简洁:

$.delete = function(url, data, callback, type){ 

    if ($.isFunction(data)){ 
    type = type || callback, 
    callback = data, 
    data = {} 
    } 

    return $.ajax({ 
    url: url, 
    type: 'DELETE', 
    success: callback, 
    data: data, 
    contentType: type 
    }); 
} 

PS:使用角速度

4

这里的一个ñ更新ajax打电话时您正在使用JSON与jQuery> 1.9:

$.ajax({ 
    url: '/v1/object/3.json', 
    method: 'DELETE', 
    contentType: 'application/json', 
    success: function(result) { 
     // handle success 
    }, 
    error: function(request,msg,error) { 
     // handle failure 
    } 
});