2011-11-07 14 views
34

Parece que usar jQuery AJAX POST pasará parámetros, pero PUT no lo hará . Miré el código jQuery actual y PUT y DELETE no están allí. Miré 1.4.2 jQuery y PUT y DELETE están ahí.jQuery Ajax PUT con los parámetros

¿Cuál es la solución para pasar parámetros con una solicitud PUT utilizando la versión actual de jQuery?

Respuesta

-2

What's the difference between a POST and a PUT HTTP REQUEST?

PUT no acepta parámetros. Es un lugar para "poner" un recurso. Por lo tanto, no creo que consiga que los parámetros funcionen, a menos que estén en la URL, que probablemente no sea lo que quiere hacer.

+3

Consulte esto: http://stackoverflow.com/questions/630453/put-vs-post- inrest Tanto 'PUT' como' POST' se pueden usar para enviar datos y es solo el cambio en el nombre del método HTTP AFAIK. –

62

¿Puede darnos un ejemplo, porque poner debería funcionar bien también?

Documentación -

El tipo de petición que hacer ("POST" o "GET"); el valor predeterminado es "GET". Nota: Otros métodos de solicitud HTTP, como PUT y DELETE, también se pueden usar aquí, pero no son compatibles con todos los navegadores.

Tener el ejemplo de violín y los parámetros de forma se pasan bien (como se pone no se añadirá a url) -

$.ajax({ 
    url: '/echo/html/', 
    type: 'PUT', 
    data: "name=John&location=Boston", 
    success: function(data) { 
    alert('Load was performed.'); 
    } 
}); 

Demo analizadas de jQuery 1.3.2 en adelante en Chrome.

+0

¿Ha intentado obtener los parámetros en el lado del servidor? Yo uso getParameter() en doPut() y los parámetros no se pasan –

+0

Comprueba http://stackoverflow.com/questions/855835/servlet-parameters-and-doput – Jayendra

+0

intenté usar HttpRequest y el mismo resultado, por lo que no es culpa de jquery, pero ¿por qué Chrome no pasa los parámetros PUT? –

6

Para otros que terminan aquí como yo lo hice, puede usar AJAX para hacer una PUT con parámetros, pero se envían como cuerpo, no como cadenas de consulta.

-5

Uso:

$.ajax({ 
    url: 'feed/4', type: 'POST', data: "_METHOD=PUT&accessToken=63ce0fde", success: function(data) { 
     console.log(data); 
    } 
}); 

Recuerde siempre utilizar _METHOD=PUT.

+0

En general, desaconsejo analizar los datos como una cadena, ya que esto impide que la aplicación sea dinámica y más difícil de leer que una matriz de objetos simple. Además, puede utilizar 'type: 'PUT'' en lugar de ponerlo en los datos. – Jono20201

Cuestiones relacionadas