【发布时间】:2011-01-10 08:49:45
【问题描述】:
GET:$.get(..)
POST:$.post()..
PUT/DELETE 呢?
【问题讨论】:
-
最好我们也需要加载
标签: jquery httprequest put
GET:$.get(..)
POST:$.post()..
PUT/DELETE 呢?
【问题讨论】:
标签: jquery httprequest put
您可以使用ajax 方法:
$.ajax({
url: '/script.cgi',
type: 'DELETE',
success: function(result) {
// Do something with the result
}
});
【讨论】:
PUT 或 DELETE 请求返回 404 错误,则需要在 IIS 中启用这些动词。我发现这是一个很好的资源:@987654322@
"The type of request to make ("POST" or "GET"), default is "GET". Note: Other HTTP request methods, such as PUT and DELETE, can also be used here, but they are not supported by all browsers." 来自:api.jquery.com/jQuery.ajax/#options
method 或 type
$.ajax 可以工作。
$.ajax({
url: 'script.php',
type: 'PUT',
success: function(response) {
//...
}
});
【讨论】:
contentType: "application/json"
似乎可以通过指定JQuery's ajax function
type: "put" 或
type: "delete"
并非所有浏览器都支持,但大多数浏览器都支持。
查看此问题以了解有关兼容性的更多信息:
Are the PUT, DELETE, HEAD, etc methods available in most web browsers?
【讨论】:
【讨论】:
你应该可以使用jQuery.ajax:
使用 HTTP 加载远程页面 请求。
您可以使用type option 指定应该使用哪种方法:
要发出的请求类型(“
POST”或 “GET”),默认为“GET”。
注意:其他 HTTP 请求方法,例如PUT和DELETE,这里也可以用,但是 并非所有人都支持 浏览器。
【讨论】:
PUT或DELETE吗?
您可以在数据散列中包含一个名为:_method,值为“删除”的键。
例如:
data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
alert('Yupi Yei. Your product has been deleted')
});
这也适用于
【讨论】:
来自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()的一个副本,方法参数已调整。
【讨论】:
我们可以扩展 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复制
【讨论】:
【讨论】:
你可以用 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
}
});
【讨论】:
为简洁起见:
$.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
});
}
【讨论】:
当您在 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
}
});
【讨论】:
如果您需要将 $.post 用于 Laravel Route::delete 或 Route::put,只需添加参数 "_method"="delete" 或 "_method"="put"。
$.post("your/uri/here", {"arg1":"value1",...,"_method":"delete"}, function(data){}); ...
必须适用于其他框架
注意:使用 Laravel 5.6 和 jQuery 3 测试
【讨论】: