8

我有一个使用 rails3、jquery-forms 的网站,我正在 firefox 和 chome 中进行测试。

为了测试,我让服务器每次都返回 422 状态。

当我提交表单时,Firefox 正确地点击“错误”。Chrome 错误地点击“成功”。

任何人都知道为什么会这样?

$('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");
    }
    });
4

1 回答 1

0

我假设您的服务器代码如下所示:

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(未修改)。

于 2012-06-23T09:41:36.527 回答