Zwracana wartość przy błędzie, ajax

Witam,
W kontrolerze, przy wystąpieniu błędu zapisu korzystam z takiego kodu:

wants.js { render :json => @ticket.errors, :status => :unprocessable_entity }

Dane normalnie się wysyłają, w konsoli firebuga widzę wszystko ładnie, tylko nie wiem jak się dostać do tych zwróconych danych z poziomu jquery gdzie callback error zwraca tylko coś takiego(wg. dokumentacji):

function (XMLHttpRequest, textStatus, errorThrown) { // typically only one of textStatus or errorThrown // will have info this; // the options for this ajax request }
Wrzuciłem sobie te dane do konsoli i w XHR nie dostrzegłem nigdzie odebranych danych, textStatus = error, a errorThrown jest nieustawione.

Jeżeli dostajesz obiekt XMLHttpRequest, to możesz to stamtąd wyciągnąć, ale ja bym nie zwracał tego jako 4xx, w końcu to nie jest błąd serwera, tylko błędne dane.

W razie czego, żeby wyciągnąć te dane musisz użyć: XMLHttpRequest.responseText

Dzięki. .responseText rzeczywiście zwróciło tego jsona, choć konsola w FireBugu pokazywała ‘’.
Co do kodu błędu, ciężko znaleźć bardziej pasujący status na liście. Błędy serwera to raczej 5xx.

[quote=Yax]Dzięki. .responseText rzeczywiście zwróciło tego jsona, choć konsola w FireBugu pokazywała ‘’.
Co do kodu błędu, ciężko znaleźć bardziej pasujący status na liście. Błędy serwera to raczej 5xx.[/quote]
Ja z reguły u siebie zwracam normalnie 200, a to co zrobić z odpowiedzią sprawdzam już na podstawie JSONa.

To chyba kwestia przyzwyczajeń bardziej. Dzięki statusowi z błędem uruchamiana jest od razu funkcja obsługująca błąd i nie trzeba warunków sprawdzać żadnych w podstawowej. No i w kontrolerze nie ma konieczności dodawania jakichś danych do JSONa.