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'});