JQuery AJAX 422 приходит как успех в Chrome - PullRequest
8 голосов
/ 18 августа 2011

У меня есть сайт, который использует rails3, jquery-forms, и я тестирую в firefox и chome.

Ради тестирования у меня есть сервер, каждый раз возвращающий 422 статуса.

Когда я отправляю свою форму, Firefox правильно нажимает «ошибка».Хром неправильно ударил "успех".

У кого-нибудь есть идеи, почему это так?

$('form').ajaxSubmit({
    dataType: 'json',
    success: function(responseText, statusText, xhr, $form) {
        console.log("It hits success");         
    },
    error: function(responseText, statusText, xhr) {
            console.log("It hits failure");
    }
    });

1 Ответ

0 голосов
/ 23 июня 2012

Я предполагаю, что код вашего сервера выглядит следующим образом:

def update
 @model = Model.find(params[:id])
 @model.update_attributes(params[:model])
 if @model.save
   render :json => @model, :status => :ok
 else
   head :unprocessable_entity # aka 422 status code
 end
end

Итак, прежде всего, есть ли загрузка файла, связанная с вашим запросом ajax?По-видимому, в этом случае нельзя использовать код состояния HTTP. тема на форуме JQuery

Условия для успешного обратного вызова: статус 2xx или 304 (без изменений).

...