GET
: $.get(..)
POST
: $.post()..
那PUT/DELETE
呢?
#1楼
您可以在数据哈希中包含一个名为:_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')
});
这也将适用于
#2楼
在这里 ,您可以执行以下操作:
/* 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()
的副本,其中方法参数已调整。
#3楼
您可以使用ajax方法:
$.ajax({
url: '/script.cgi',
type: 'DELETE',
success: function(result) {
// Do something with the result
}
});
#4楼
$.ajax
将起作用。
$.ajax({
url: 'script.php',
type: 'PUT',
success: function(response) {
//...
}
});
#5楼
通过指定JQuery的ajax函数似乎有可能
type: "put"
或type: "delete"
并非所有浏览器都支持,但大多数浏览器均不支持。
查看此问题以获取有关兼容性的更多信息:
大多数Web浏览器中都可以使用PUT,DELETE,HEAD等方法吗?
#6楼
寻找参数类型
其他HTTP请求方法(例如PUT和DELETE)也可以在此处使用,但并非所有浏览器都支持它们。
#7楼
您应该可以使用jQuery.ajax
:
使用HTTP请求加载远程页面。
您可以通过type
选项指定应使用的方法:
发出请求的类型(“
POST
”或“GET
”),默认为“GET
”。
注意:其他HTTP请求方法(例如PUT
和DELETE
)也可以在此处使用,但并非所有浏览器都支持。
#8楼
我们可以扩展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);
})
从这里复制
#9楼
我编写了一个jQuery插件,其中包含此处讨论的解决方案以及跨浏览器的支持:
https://github.com/adjohnson916/jquery-methodOverride
看看这个!
#10楼
您可以使用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
}
});
#11楼
为了简洁:
$.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
});
}
#12楼
这是在jQuery> 1.9中使用JSON时的更新ajax调用:
$.ajax({
url: '/v1/object/3.json',
method: 'DELETE',
contentType: 'application/json',
success: function(result) {
// handle success
},
error: function(request,msg,error) {
// handle failure
}
});
#13楼
这是一个简单的单行代码,我使用了多个变量:
$.put("https://your-url.com",{item1:'new item1',item2:'new items2'});
#14楼
如果需要在Laravel Route::delete
或Route::put
中使$.post
工作,只需添加参数"_method"="delete"
或"_method"="put"
。
$.post("your/uri/here", {"arg1":"value1",...,"_method":"delete"}, function(data){}); ...
必须为其他人工作
注意:已通过Laravel 5.6和jQuery 3测试
#15楼
1)GET: - 当客户端在Web服务器上请求资源时使用。
2)HEAD: - 当客户端请求有关资源的某些信息但不请求资源本身时使用。
3)POST: - 在客户端向服务器发送信息或数据时使用 - 例如,填写在线表单(即向Web服务器发送大量复杂数据)。
4)PUT: - 当客户端在请求URL下发送替换文档或将新文档上载到Web服务器时使用。
5)删除: - 当客户端尝试从Web服务器删除由请求URL标识的文档时使用。
6)TRACE: - 当客户端要求可用代理或中间服务器更改请求以宣布自己时使用。
7)选项: - 当客户端想要确定在Web服务器上检索或处理文档的其他可用方法时使用。
8)CONNECT: - 当客户端想要建立到远程主机的透明连接时使用,通常是为了通过HTTP代理促进SSL加密通信(HTTPS)。