2010-02-15 16 views
8

In meiner Client-App — geschrieben in Javascript und jQuery — Ich habe eine Funktion, wo ich $ .ajax Anfrage mit der Methode DELETE auf meinem Server.

Der Code ist so etwas wie dieses:

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 Anforderung ohne Parameter "id" wird! Einfach ein einfaches LÖSCHEN (laut Firebug). mit PUT, POST oder GET funktioniert es großartig.

+0

http://stackoverflow.com/questions/4018982/ajax- ignoring-data-param-for-delete-requests –

Antwort

7

Interessant. Ich kann nichts in der RFC finden, aber es liegt nahe, dass es keine Möglichkeit gibt, Parameter mit den DELETE-Methoden zu übergeben - nur in GET und POST, also entweder JQuery oder der Browser die Parameter richtig herausfiltern. Das ist nur eine Vermutung, vielleicht kann jemand, der dieses Zeug auswendig kennt, eine tiefgründigere Aussage machen.

Wie auch immer, wenn JQuery so funktioniert, denke ich, dass Ihre Problemumgehung die ID in die URL setzen muss, und mod_rewrite es aus.

Bevor Sie das tun, versuchen Sie, ob Sie nicht den Browser es nebenbei, indem der Parameter an die URL durch Trick kann: sitesCtrl.url+'?ID='+id

+0

Nice Phrasierung, logische Annahmen, RFC, abgestimmt. – karim79

+0

Pekka, thnx als Antwort. Vor einiger Zeit habe ich mit Project auf cherrypy + ExtJS gearbeitet, und DELETE-Anfragen von ExtJS zu CP liefen ziemlich schnell und ohne weitere Probleme :) –

+0

"* Ich kann im RFC nichts finden [...] *": Sie müssen das Bit verpasst haben, das [Request-URI] definiert (http://tools.ietf.org/html/rfc2616#section-5.1.2). Der [URI enthält alles einschließlich Abfrageparameter] (http://tools.ietf.org/html/rfc2616#section-3.2) (selbst die Fragmente sind Teil des URIs, aber sie werden nicht in Anfragen gesendet). – Bruno

Verwandte Themen