我正在使用表单执行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()的正确运行,因为我知道它有效。它只是在一个类“警报”中添加一条消息。
答案 0 :(得分:1)
从服务器返回的内容将是一个看起来像这样的对象:
{'success': 'some_msg', 'error': 'some_error'}
此对象将在Ajax调用的成功回调中收到 无论成功还是错误,您都将自己处理响应。 因此,从服务器返回的消息将重定向您,因为它是成功回调的一部分。
'error'回调函数中的错误与Ajax调用本身有关,但与您自己从服务器返回的自定义错误消息无关。