Tag: chrome (1 posts)
Bug en chrome en llamadas ajax con Jquery
Publicado el 05 Mar 2010
El otro día descubrí en una aplicación un error al realizar una llamada ajax:
Error occurred while parsing request parameters.
Contents:
undefined
/!\ FAILSAFE /!\ 28/01/2010 09:47:38
Status: 500 Internal Server Error
undefined method `name' for nil:NilClass
/usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/whiny_nil.rb:52:in `method_missing'
/usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/xml_mini/rexml.rb:29:in `merge_element!'
/usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/xml_mini/rexml.rb:18:in `parse'
/usr/lib64/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/xml_mini.rb:12:in `__send__'
Este error sólo se reproducia utilizando chrome y ocurria al realizar una llamada ajax de tipo POST como la siguiente:
jQuery.ajax({
url: '/ratings?rating=5&rateable_type=MyModel&rateable_id=myid',
type: 'post',
});
Es un llamada ajax normal, con la particularidad de que en vez de pasarle los parametros a la request con un 'data', se los estaba pasando como si fuera un GET, y eso parecia no gustarle a rails, de hecho, el error que soltaba era un error de parseo en los parametros de la request.
Si la llamada anterior se usaba en su manera estandar, pasandole los parametros con un 'data' todo parecía funcionar a la perfección:
jQuery.ajax({
url: '/ratings',
type: 'post',
data: {
rating: '5',
rateable_type: 'MyModel'
}
});
El error parece estar como comentan por aquí en un bug ya reportado en el navegador chrome, que ocurre cuando se envia un XMLHttpRequest con el cuerpo vacio, y chrome envia un 'undefined' en el mismo.