2010-02-15 22 views
8

en mi aplicación cliente — escritas en javascript y jQuery — tengo una función que le estoy haciendo $ .ajax petición con el método Delete para mi servidor.

El código es algo como esto:

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

El problema es que el servidor recibe la solicitud sin ningún parámetro "id"! Solo un DELETE simple (según firebug). con PUT, POST o GET funciona muy bien.

+0

http://stackoverflow.com/questions/4018982/ajax- ignorando-datos-param-para-eliminar-solicitudes –

Respuesta

7

Interesante. No puedo encontrar nada en el RFC pero es lógico pensar que no hay forma de pasar parámetros usando los métodos DELETE, solo en GET y POST, por lo que JQuery o el navegador filtran los parámetros correctamente. Sin embargo, esto es solo una suposición, tal vez alguien que sabe esto de memoria puede hacer una declaración más profunda.

De todos modos, si esta es la forma en que JQuery funciona en este momento, creo que su solución tendrá que ser poner el ID en la URL, y mod_rewrite out.

Antes de hacerlo, trate si no se puede engañar al navegador en pasándolo a través añadiendo el parámetro a la URL: sitesCtrl.url+'?ID='+id

+0

Bonito fraseo, suposiciones lógicas, RFC, votadas. – karim79

+0

Pekka, por respuesta. Algún tiempo antes, trabajé con el proyecto en cherrypy + ExtJS, y las solicitudes DELETE desde ExtJS hasta CP corrieron bastante rápido y sin ningún problema adicional :) –

+0

"* No puedo encontrar nada en el RFC [...] *": debe haber perdido el bit que define ['Request-URI'] (http://tools.ietf.org/html/rfc2616#section-5.1.2). El [URI incluye todo, incluidos los parámetros de consulta] (http://tools.ietf.org/html/rfc2616#section-3.2) (incluso los fragmentos son parte del URI, pero no se enviarán en las solicitudes). – Bruno

Cuestiones relacionadas