8 Stimmen

$.ajax mit DELETE verliert Parameter

In meinem Client app-geschrieben in Javascript und jQuery-ich habe eine Funktion, wo ich $.ajax Anfrage mit der DELETE-Methode zu meinem Server tun.

Der Code sieht in etwa so aus:

    this.delete_one = function(id){
    console.log(id);
    $.ajax({
        url: sitesCtrl.url,
        type: "delete",
        dataType: 'json',
        data: {"id": id},
        success: function(data){
            if (data.success){
                $("sitesList").remove("#" + id + "\"");
            }
            else{
                console.log(data.message);
            }
        },
        error: function(){
            console.log("internal error");
        }
    })
};

Das Problem ist, dass der Server die Anfrage ohne den Parameter "id" erhält! Nur eine einfache DELETE (nach Firebug). mit PUT, POST oder GET es funktioniert gut.

7voto

Pekka Punkte 429407

Interessant. Ich kann nichts in der RFC aber es liegt auf der Hand, dass es keine Möglichkeit gibt, Parameter mit den DELETE-Methoden zu übergeben - nur in GET und POST, so dass entweder JQuery oder der Browser die Parameter korrekt herausfiltern. Dies ist allerdings nur eine Vermutung, vielleicht kann jemand, der sich damit auskennt, eine fundiertere Aussage machen.

Wie auch immer, wenn dies ist, wie JQuery jetzt funktioniert, denke ich, dass Ihr Workaround die ID in die URL setzen müssen, und mod_rewrite es aus.

Bevor Sie das tun, versuchen Sie, ob Sie den Browser nicht austricksen können, indem Sie den Parameter zur URL : sitesCtrl.url+'?ID='+id

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X