返回状态代码并在客户端获取消息或直接向客户端发送错误消息

时间:2014-11-08 03:33:21

标签: javascript jquery ajax

我正在响应一个AJAX请求,但是有一个应用程序错误。 (例如,数据验证失败)。如何注意用户?

1。返回状态代码,然后通过JS获取消息

$.ajax(options).done(function(response){
    if (response.status === 1){
        // no problem, do next action
    } else {
        alert (messages[response.status]);
    }
});

var messages = {
    '0': 'Server Error',
    '-1': 'Invalid Data',
    ...
}

2。返回状态代码和消息:

$.ajax(options).done(function(response){
    if (response.status === 1){
        // no problem, do next action
    } else {
        alert (response.message);
    }
});

哪一个更好?或者,最佳做法是什么?请注意,我们有双语申请。

就个人而言,我认为首先是更好。因为我必须在我的JS文件中至少定义一条错误消息,因为服务器错误。 (当AJAX请求失败时,jQuery .fail())所以如果我必须这样做一次,最好在同一个地方收集所有消息。

1 个答案:

答案 0 :(得分:0)

总的来说,我一直都在教授和实践第二个。客户端验证很好但是它不可靠,因为客户端也可以编辑它并在它们足够恶意的情况下造成破坏。

最好进行服务器端验证并从那里返回消息。这为您和后端提供了完全控制,用户无法进行捣乱。您在ajax调用中应该遇到的主要错误是某种"内部服务器错误"在错误回调函数中。如果用户得到这个,那么呼叫将无论如何都会失败,因为它无法读取服务器。除此之外的任何消息都意味着服务器已成功到达并对所有传入的数据执行内部验证,这些消息来自这些数据。

如果你真的想要,你可以做两次验证。如果输入格式完全错误,请进行良好的jquery验证,不会让调用发生。但是如果它确实进入了服务器,你应该认为你不能信任传入的任何输入,直到在那里明确验证它为止。

希望这是有用的。干杯。