Comment envoyer une requête PUT / DELETE en jQuery?
12 réponses
vous pouvez utiliser la ajax méthode:
$.ajax({
url: '/script.cgi',
type: 'DELETE',
success: function(result) {
// Do something with the result
}
});
$.ajax
ça va marcher.
$.ajax({
url: 'script.php',
type: 'PUT',
success: function(response) {
//...
}
});
nous pouvons étendre jQuery pour faire des raccourcis pour PUT et 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
});
};
});
et maintenant, vous pouvez utiliser:
$.put('http://stackoverflow.com/posts/22786755/edit', {text:'new text'}, function(result){
console.log(result);
})
copie de ici
semble être possible avec fonction ajax de JQuery en spécifiant
type: "put"
ou
type: "delete"
et n'est pas pris en charge par tous les navigateurs, mais la plupart d'entre eux.
consultez cette question pour plus d'informations sur la compatibilité:
les méthodes PUT, DELETE, HEAD, etc sont-elles disponibles dans la plupart des navigateurs web?
à Partir de ici , vous pouvez le faire:
/* 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');
}
});
il s'agit essentiellement d'une copie de $.post()
avec le paramètre de méthode adapté.
vous devriez pouvoir utiliser jQuery.ajax
:
chargez une page distante en utilisant un HTTP demande.
Et vous pouvez spécifier quelle méthode doit être utilisée, avec le type
option :
le type de demande à présenter ("
POST
" ou "GET
"), la valeur par défaut est "GET
".
Note: Autres Les méthodes de requêtes HTTP, telles quePUT
etDELETE
, peut également être utilisée ici, mais ils ne sont pas pris en charge par tous navigateur.
Voici une mise à jour ajax appel à vous lors de l'utilisation de JSON avec 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
}
});
vous pouvez le faire avec AJAX !
pour PUT
méthode:
$.ajax({
url: 'path.php',
type: 'PUT',
success: function(data) {
//play with data
}
});
pour DELETE
méthode:
$.ajax({
url: 'path.php',
type: 'DELETE',
success: function(data) {
//play with data
}
});
pour brièveté:
$.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
});
}
j'ai écrit un plugin jQuery qui intègre les solutions discutées ici avec le soutien de cross-browser:
https://github.com/adjohnson916/jquery-methodOverride
Check it out!
vous pouvez inclure dans vos données une clé appelée: _method avec la valeur 'delete'.
par exemple:
data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
alert('Yupi Yei. Your product has been deleted')
});
ceci s'applique également pour