GET
:$.get(..)
POST
:$.post()..
Про що PUT/DELETE
?
GET
:$.get(..)
POST
:$.post()..
Про що PUT/DELETE
?
Відповіді:
Ви можете використовувати метод ajax :
$.ajax({
url: '/script.cgi',
type: 'DELETE',
success: function(result) {
// Do something with the result
}
});
PUT
чи DELETE
запити повертають 404 помилки, вам потрібно буде включити ці дієслова в IIS. Я вважаю це хорошим ресурсом: geekswithblogs.net/michelotti/archive/2011/05/28/…
"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."
method
абоtype
$.ajax
буду працювати.
$.ajax({
url: 'script.php',
type: 'PUT',
success: function(response) {
//...
}
});
contentType: "application/json"
Ми можемо розширити 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);
})
копія звідси
Здається, це можливо завдяки функції ajax JQuery шляхом вказівки
type: "put"
або
type: "delete"
і підтримується не всіма браузерами, але більшість із них.
Дивіться це запитання, щоб отримати докладнішу інформацію про сумісність:
Чи доступні методи PUT, DELETE, HEAD тощо у більшості веб-браузерів?
Від тут , ви можете зробити це:
/* 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()
з адаптованим параметром методу.
Ось оновлений дзвінок 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
}
});
Ви повинні мати можливість використовувати jQuery.ajax
:
Завантажте віддалену сторінку за допомогою HTTP-запиту.
І ви можете вказати, який метод слід використовувати, з type
опцією :
Тип запиту зробити ("
POST
" або "GET
") за замовчуванням "GET
".
Примітка. Інші методи запиту HTTP, такі якPUT
іDELETE
, також можуть використовуватися тут, але вони підтримуються не всіми браузерами.
PUT
або DELETE
?
шукайте тип парам
Тут також можуть використовуватися інші методи запиту HTTP, такі як PUT та DELETE, але вони підтримуються не всіми браузерами.
Для стислості:
$.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
});
}
Ви можете це зробити за допомогою 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, який включає рішення, обговорені тут, із підтримкою крос-браузера:
https://github.com/adjohnson916/jquery-methodOverride
Перевір!
Якщо вам потрібно зробити $.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
Ви можете включити у свій хеш даних ключ, який називається: _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')
});
Це також стосуватиметься
Ось простий однолінійний я використовую для розміщення декількох змінних:
$.put("https://your-url.com",{item1:'new item1',item2:'new items2'});