Comment envoyer une requête PUT / DELETE en jQuery?

GET : $.get(..)

POST : $.post()..

et PUT/DELETE ?

486
demandé sur Damjan Pavlica 2010-01-28 13:55:36

12 réponses

vous pouvez utiliser la ajax méthode:

$.ajax({
    url: '/script.cgi',
    type: 'DELETE',
    success: function(result) {
        // Do something with the result
    }
});
814
répondu Darin Dimitrov 2010-01-28 10:58:15

$.ajax ça va marcher.

$.ajax({
   url: 'script.php',
   type: 'PUT',
   success: function(response) {
     //...
   }
});
108
répondu Jacob Relkin 2012-10-04 09:35:18

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

67
répondu Stepan Suvorov 2014-04-01 13:03:44

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?

28
répondu Pekka 웃 2017-05-23 11:33:26

à 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é.

9
répondu user2503775 2013-10-28 09:18:31

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 que PUT et DELETE , peut également être utilisée ici, mais ils ne sont pas pris en charge par tous navigateur.

5
répondu Pascal MARTIN 2010-01-28 10:59:05

ajax ()

chercher param type

"

D'autres méthodes de requêtes HTTP, telles que PUT et DELETE, peuvent également être utilisées ici, mais elles ne sont pas prises en charge par tous les navigateurs.

4
répondu antpaw 2010-01-28 10:58:40

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
    }
});
4
répondu moodboom 2017-02-05 17:40:16

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
  }
});
3
répondu Xanarus 2017-09-17 04:27:35

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
  });
}
2
répondu Paul Wand 2018-05-04 09:49:45

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!

1
répondu AndersDJohnson 2014-04-06 19:41:44

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

0
répondu mumoc 2013-09-12 22:36:26