Acabo de actualizar de jQuery 1.3.2 a 1.4.3, y estoy viendo un nuevo comportamiento al hacer solicitudes AJAX DELETE. Por algún motivo, los datos que se pasan en mi parámetro data
no se envían al servidor. Por ejemplo:
$.ajax({
url: '/example',
data: {id: 12},
type: 'DELETE'
});
termina el envío de una solicitud DELETE a /example
sin datos adicionales. Sin embargo, este tipo de llamada pasa los parámetros muy bien:
$.ajax({
url: '/example?id=12',
type: 'DELETE'
});
¿Alguien ha visto comportamiento similar? ¿Hay alguna razón por la cual esto ya no funciona (es decir, es por diseño o es un error)? ¿Alguna sugerencia sobre cómo hacerlo funcionar?
Además, en caso de que alguien se pregunte por qué no quiero simplemente pasar los parámetros como parte de la cadena URL, es porque en última instancia estoy intentando usar la devolución de llamada $.ajaxSetup
, proporcionando algunos parámetros generales allí (es decir, authenticity_token
parámetro utilizado para proteger contra la falsificación en Rails). Todo funcionó bien antes de probar jQuery 1.4.3.
Gracias, Nick. ¿Alguna sugerencia sobre una solución alternativa? Dada su respuesta, intenté actualizar 'settings.url' en la devolución de llamada' $ .ajaxSend() 'de manera que anexe los valores de la cadena de consulta para las solicitudes DELETE; sin embargo, parece que el valor devuelto de 'settings.url' no se está capturando para su uso en jQuery 1.4.3 como se muestra en 1.3.2.¿Alguna otra idea sobre cómo lidiar con esto, aparte de agregar manualmente el mismo parámetro a cada solicitud en cualquier lugar de mi código? –
@Matt - Creo que 1.4.4 saldrá muy pronto como una versión de corrección de errores, mira este compromiso hace una hora etiquetándolo 1.4.4pre: http://github.com/jquery/jquery/commit/9b97599fa4d615a91d1605d9c664c50f576911ce Yo diría espere unos días, obtenga 1.4.4 final y ya está todo listo. Aquí hay una publicación en el blog: http://blog.jquery.com/2010/10/24/community-updates-2610/ –
Lamentablemente, los plazos me obligan a lidiar con esto ahora. Supongo que actualizaré las llamadas en línea por ahora, y refactorizaré en un par de días cuando esté disponible. Muchas gracias por su visión, ¡siempre son increíblemente útiles aquí! –