Как отправить запрос PUT / DELETE в jQuery? - PullRequest
521 голосов
/ 28 января 2010

GET: $.get(..)

POST: $.post()..

А как же PUT/DELETE?

Ответы [ 15 ]

867 голосов
/ 28 января 2010

Вы можете использовать метод ajax :

$.ajax({
    url: '/script.cgi',
    type: 'DELETE',
    success: function(result) {
        // Do something with the result
    }
});
116 голосов
/ 28 января 2010

$.ajax будет работать.

$.ajax({
   url: 'script.php',
   type: 'PUT',
   success: function(response) {
     //...
   }
});
71 голосов
/ 01 апреля 2014

Мы можем расширить 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);
})

копия с здесь

29 голосов
/ 28 января 2010

Кажется возможным с ajax-функцией JQuery , указав

type: "put" или type: "delete"

и поддерживается не всеми браузерами, но большинством из них.

Проверьте этот вопрос для получения дополнительной информации о совместимости:

Доступны ли методы PUT, DELETE, HEAD и т. Д. В большинстве веб-браузеров?

9 голосов
/ 28 октября 2013

С здесь , вы можете сделать это:

/* 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() с адаптированным параметром метода.

7 голосов
/ 05 февраля 2017

Вот обновленный 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
    }
});
5 голосов
/ 28 января 2010

Вы должны быть в состоянии использовать jQuery.ajax:

Загрузить удаленную страницу, используя HTTP запрос.


И вы можете указать, какой метод следует использовать, с опцией type :

Тип запроса («POST» или «GET»), по умолчанию «GET».
Примечание: другое Методы HTTP-запроса, такие как PUT и DELETE, также может использоваться здесь, но они не поддерживаются всеми браузеры.

4 голосов
/ 28 января 2010

Аякса ()

искать параметры тип

Здесь также можно использовать другие методы HTTP-запросов, такие как PUT и DELETE, но они поддерживаются не всеми браузерами.

3 голосов
/ 10 июня 2015

Для краткости:

$.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 голосов
/ 18 мая 2014

Вы можете сделать это с 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
  }
});
...