2010-02-15 3 views
8

Dans mon application client — écrit en javascript et jQuery — J'ai une fonction où je fais la requête $ .ajax avec la méthode DELETE sur mon serveur.

Le code est quelque chose comme ceci:

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

Le problème est que le serveur reçoit la demande sans paramètre « id »! Juste un simple DELETE (selon firebug). avec PUT, POST, ou GET cela fonctionne très bien.

+0

http://stackoverflow.com/questions/4018982/ajax- ignorer-data-param-for-delete-demandes –

Répondre

7

Intéressant. Je ne peux pas trouver quoi que ce soit dans le RFC, mais il va de soi qu'il n'y a aucun moyen de passer des paramètres à l'aide des méthodes SUPPRIMER - seulement GET et POST, donc soit JQuery ou le navigateur filtre pas correctement les paramètres. C'est juste une supposition, cependant, peut-être quelqu'un qui connaît ce truc par cœur peut faire une déclaration plus profonde.

Quoi qu'il en soit, si cela est de savoir comment fonctionne JQuery en ce moment, je pense que votre solution devra être mettre l'ID dans l'URL, et mod_rewrite dehors.

Avant de faire cela, essayez si vous ne pouvez pas tromper le navigateur en passant à travers en ajoutant le paramètre à l'URL: sitesCtrl.url+'?ID='+id

+0

Beau phrasé, hypothèses logiques, RFC, voté. – karim79

+0

Pekka, merci pour la réponse. Quelque temps auparavant, j'ai travaillé avec le projet sur cherrypy + ExtJS et SUPPRIMER demandes de ExtJS à CP a couru assez rapide et sans aucun problème supplémentaire :) –

+0

« * Je ne trouve rien dans la RFC [...] * »: Vous devez avoir manqué le bit qui définit ['Request-URI'] (http://tools.ietf.org/html/rfc2616#section-5.1.2). Le [URI comprend tout, y compris les paramètres de la requête] (http://tools.ietf.org/html/rfc2616#section-3.2) (même les fragments font partie de l'URI, mais ils ne sont pas à envoyer des demandes). – Bruno

Questions connexes