GET
:$.get(..)
POST
:$.post()..
Bagaimana dengan PUT/DELETE
?
GET
:$.get(..)
POST
:$.post()..
Bagaimana dengan PUT/DELETE
?
Jawaban:
Anda bisa menggunakan metode ajax :
$.ajax({
url: '/script.cgi',
type: 'DELETE',
success: function(result) {
// Do something with the result
}
});
PUT
atau DELETE
permintaan menghasilkan 404 kesalahan, Anda harus mengaktifkan kata kerja ini di IIS. Saya menemukan ini sebagai sumber yang bagus: 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."
dari: api.jquery.com/jQuery.ajax/#options
method
atautype
$.ajax
akan bekerja.
$.ajax({
url: 'script.php',
type: 'PUT',
success: function(response) {
//...
}
});
contentType: "application/json"
Kami dapat memperluas jQuery untuk membuat pintasan untuk PUT dan 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
});
};
});
dan sekarang Anda dapat menggunakan:
$.put('http://stackoverflow.com/posts/22786755/edit', {text:'new text'}, function(result){
console.log(result);
})
salin dari sini
Tampaknya dimungkinkan dengan fungsi ajax JQuery dengan menentukan
type: "put"
atau
type: "delete"
dan tidak didukung oleh semua browser, tetapi kebanyakan dari mereka.
Lihat pertanyaan ini untuk info lebih lanjut tentang kompatibilitas:
Apakah metode PUT, DELETE, HEAD, dll tersedia di sebagian besar browser web?
Dari sini , Anda dapat melakukan ini:
/* 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');
}
});
Ini pada dasarnya hanya salinan $.post()
dengan parameter metode yang disesuaikan.
Ini panggilan ajax yang diperbarui untuk saat Anda menggunakan JSON dengan 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
}
});
Anda harus dapat menggunakan jQuery.ajax
:
Muat halaman jarak jauh menggunakan permintaan HTTP.
Dan Anda dapat menentukan metode mana yang harus digunakan, dengan type
opsi :
Jenis permintaan untuk membuat ("
POST
" atau "GET
"), standarnya adalah "GET
".
Catatan: Metode permintaan HTTP lainnya, sepertiPUT
danDELETE
, juga dapat digunakan di sini, tetapi mereka tidak didukung oleh semua browser.
PUT
atau DELETE
?
Anda dapat melakukannya dengan AJAX!
Untuk PUT
metode:
$.ajax({
url: 'path.php',
type: 'PUT',
success: function(data) {
//play with data
}
});
Untuk DELETE
metode:
$.ajax({
url: 'path.php',
type: 'DELETE',
success: function(data) {
//play with data
}
});
Saya telah menulis plugin jQuery yang menggabungkan solusi yang dibahas di sini dengan dukungan lintas-browser:
https://github.com/adjohnson916/jquery-methodOverride
Coba lihat!
Jika Anda perlu membuat $.post
karya ke Laravel Route::delete
atau Route::put
hanya menambahkan argumen "_method"="delete"
atau "_method"="put"
.
$.post("your/uri/here", {"arg1":"value1",...,"_method":"delete"}, function(data){}); ...
Harus bekerja untuk Kerangka kerja lain
Catatan: Diuji dengan Laravel 5.6 dan jQuery 3
Anda dapat memasukkan dalam hash data Anda sebuah kunci bernama: _method dengan nilai 'delete'.
Sebagai contoh:
data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
alert('Yupi Yei. Your product has been deleted')
});
Ini juga akan berlaku untuk
Berikut ini adalah satu-liner sederhana yang saya gunakan untuk meletakkan lebih dari satu variabel:
$.put("https://your-url.com",{item1:'new item1',item2:'new items2'});