Как отправить запрос PUT/DELETE в jQuery?

GET $.get(..)

POST $.post()..

Как насчет PUT/DELETE?

Ответ 1

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

$.ajax({
    url: '/script.cgi',
    type: 'DELETE',
    success: function(result) {
        // Do something with the result
    }
});

Ответ 2

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

$.ajax({
   url: 'script.php',
   type: 'PUT',
   success: function(response) {
     //...
   }
});

Ответ 3

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

скопируйте здесь

Ответ 5

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

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

Ответ 6

Вот обновленный вызов 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
    }
});

Ответ 7

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

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


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

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

Ответ 8

ajax()

найдите параметр

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

Ответ 9

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

$.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
  });
}

Ответ 10

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

Ответ 11

Вы можете включить в свой хэш данных ключ с именем: _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')
});

Это также относится к

Ответ 12

Я написал плагин jQuery, который включает в себя решения, обсуждаемые здесь, с поддержкой кросс-браузера:

https://github.com/adjohnson916/jquery-methodOverride

Проверьте это!

Ответ 13

Вот простая однострочная строка, которую я использую, чтобы поместить более одной переменной:

$.put("https://your-url.com",{item1:'new item1',item2:'new items2'});

Ответ 14

Если вам нужно, чтобы $.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

Ответ 15

1) GET: - используется, когда клиент запрашивает ресурс на веб-сервере.

2) HEAD: - Используется, когда клиент запрашивает некоторую информацию о ресурсе, но не запрашивает сам ресурс.

3) POST: - Используется, когда клиент отправляет информацию или данные на сервер - например, заполняя онлайн-форму (т.е. отправляет большой объем сложных данных на веб-сервер).

4) PUT: - используется, когда клиент отправляет заменяющий документ или загружает новый документ на веб-сервер по URL-адресу запроса.

5) DELETE: - используется, когда клиент пытается удалить документ с веб-сервера, идентифицируемый по URL-адресу запроса.

6) TRACE: - Используется, когда клиент запрашивает доступные прокси или промежуточные серверы, меняющие запрос, чтобы объявить себя.

7) ОПЦИИ: - Используется, когда клиент хочет определить другие доступные методы для извлечения или обработки документа на веб-сервере.

8) CONNECT: - Используется, когда клиент хочет установить прозрачное соединение с удаленным хостом, обычно для облегчения связи с шифрованием SSL (HTTPS) через HTTP-прокси.