Hoe een Put / Delete-aanvraag in jQuery verzenden?

GET: $.get(..)

POST: $.post()..

Hoe zit het met PUT/DELETE?


Antwoord 1, Autoriteit 100%

U kunt de Ajax methode:

gebruiken

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

Antwoord 2, Autoriteit 13%

$.ajaxzal werken.

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

Antwoord 3, Autoriteit 8%

We kunnen jQuery uitbreiden om snelkoppelingen te maken voor het plaatsen en verwijderen:

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

En nu kunt u gebruiken:

$.put('http://stackoverflow.com/posts/22786755/edit', {text:'new text'}, function(result){
   console.log(result);
})

Kopiëren van Hier


Antwoord 4, Autoriteit 3%

lijkt mogelijk te zijn met jQuery’s ajax-functie Door

op te geven

type: "put"OF
type: "delete"

en wordt niet niet ondersteund door alle browsers, maar de meesten van hen.

Bekijk deze vraag voor meer informatie over compatibiliteit:

zijn de Put, Delete, Head, etc-methoden beschikbaar in de meeste webbrowsers?


Antwoord 5

van Hier kunt u dit doen:

/* 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');
    }
});

Het is eigenlijk slechts een kopie van $.post()met de methodeparameter aangepast.


Antwoord 6

Hier is een bijgewerkte Ajax bel voor wanneer u JSON gebruikt met jQuery & GT ; 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
    }
});

Antwoord 7

U zou in staat moeten zijn om jQuery.ajaxte gebruiken :

Laad een externe pagina met behulp van een http
aanvraag.

En u kunt aangeven welke methode moet worden gebruikt, met de typeOPTIE :

Het type verzoek om (“POST” of
GET“), standaard is “GET“.
Opmerking: anders
HTTP-aanvraagmethoden, zoals PUTen
DELETE, kan hier ook worden gebruikt, maar
ze worden niet door iedereen ondersteund
browsers.


Antwoord 8

Ajax ()

Zoek naar Param Type

Andere HTTP-aanvraagmethoden, zoals PACE en DELETE, kunnen hier ook worden gebruikt, maar ze worden niet ondersteund door alle browsers.


Antwoord 9

Voor beknoptheid:

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

Antwoord 10

Als u een $.postwerkzaam naar een laravel Route::deleteof Route::putGewoon een argument toevoegen "_method"="delete"of "_method"="put".

$.post("your/uri/here", {"arg1":"value1",...,"_method":"delete"}, function(data){}); ...

Moet werken voor anderen Frameworks

Opmerking: getest met Laravel 5.6 en jQuery 3


Antwoord 11

Je kunt het doen met AJAX!

Voor PUTmethode:

$.ajax({
  url: 'path.php',
  type: 'PUT',
  success: function(data) {
    //play with data
  }
});

Voor DELETEmethode:

$.ajax({
  url: 'path.php',
  type: 'DELETE',
  success: function(data) {
    //play with data
  }
});

Antwoord 12

Ik heb een jQuery-plug-in geschreven die de hier besproken oplossingen bevat met ondersteuning voor meerdere browsers:

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

Bekijk het!


Antwoord 13

U zou in uw gegevenshash een sleutel kunnen opnemen met de naam: _method met waarde ‘delete’.

Bijvoorbeeld:

data = { id: 1, _method: 'delete' };
url = '/products'
request = $.post(url, data);
request.done(function(res){
  alert('Yupi Yei. Your product has been deleted')
});

Dit geldt ook voor

Other episodes