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%
$.ajax
zal 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.ajax
te gebruiken :
Laad een externe pagina met behulp van een http
aanvraag.
En u kunt aangeven welke methode moet worden gebruikt, met de type
OPTIE :
Het type verzoek om (“
POST
” of
“GET
“), standaard is “GET
“.
Opmerking: anders
HTTP-aanvraagmethoden, zoalsPUT
en
DELETE
, kan hier ook worden gebruikt, maar
ze worden niet door iedereen ondersteund
browsers.
Antwoord 8
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 $.post
werkzaam naar een laravel Route::delete
of Route::put
Gewoon 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 PUT
methode:
$.ajax({
url: 'path.php',
type: 'PUT',
success: function(data) {
//play with data
}
});
Voor DELETE
methode:
$.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