Backbone.js停止对表单POST的http错误响应进行导航

时间:2014-04-23 12:22:15

标签: jquery node.js backbone.js

我正在使用表单执行ajax帖子,如果服务器出现问题,我希望能够在视图中的表单下显示错误。我视图中的ajax看起来像:

    $.ajax({
        url: "/dothis",
        type: "post",
        data: fd,
        processData: false,
        contentType: false,
        success: function (data, textStatus, xhr) {
            console.log("Success response")
                event.preventDefault();
                app.navigate("somewhereelse", true);
        },
        error: function (xhr, textStatus, errorThrown) {
            console.log("Error response")
             event.preventDefault();

            utils.showAlert('Error', xhr.responseText, 'alert-error');
        },
        async: true
    });

我可以从node.js发回此错误:

res.send(500, "This is my error");

但是在出错时,应用程序会从表单页面导航回到我的索引页面。我怎样才能让它不能离开而是出现错误。假设utils.showAlert()的正确运行,因为我知道它有效。它只是在一个类“警报”中添加一条消息。

1 个答案:

答案 0 :(得分:1)

从服务器返回的内容将是一个看起来像这样的对象:

{'success': 'some_msg', 'error': 'some_error'} 

此对象将在Ajax调用的成功回调中收到 无论成功还是错误,您都将自己处理响应。 因此,从服务器返回的消息将重定向您,因为它是成功回调的一部分。

'error'回调函数中的错误与Ajax调用本身有关,但与您自己从服务器返回的自定义错误消息无关。