【问题标题】:How to write basic Error Handling when using AJAX JSON使用 AJAX JSON 时如何编写基本的错误处理
【发布时间】:2021-10-05 09:24:10
【问题描述】:

我在后端开发方面并不那么了解,但我有一项小任务,即为您在下面看到的代码添加一些错误处理。我要做的就是显示对#results 标记的潜在错误响应(如果它们发生)。它只需要一些基本的东西,因为代码本身应该留给错误发生的空间很小。任何帮助将不胜感激。如果您有任何问题,请告诉我。感谢您的帮助。

$('#hierarchyBtn').click(function() {

    $.ajax({
        url: "libs/php/getHierarchy.php",
        type: 'POST',
        dataType: 'json',
        data: {
            geonameId: $('#selHieGeonameId').val(),
        },
        success: function(result) {

            console.log(JSON.stringify(result));

            if (result.status.name == "ok") {

                var names = result['data'].map(function(geoname){return geoname.toponymName}).join(", ");
                $('#results').text(names);

            }
        
        },
        error: function(jqXHR, textStatus, errorThrown) {
            // my error code
        }
    }); 

});

【问题讨论】:

  • 那么你需要在#results元素内显示从服务器收到的错误?
  • 是的,这就是我想要实现的目标。我不做任何错误处理工作,所以需要一些代码来处理任何错误。并且还将错误显示到#results 标记。
  • 错误处理取决于你的目标,你需要什么样的错误处理?为了在 #results 标记中显示错误,您可以使用与您为成功案例所做的类似的操作。

标签: javascript php json ajax error-handling


【解决方案1】:

如果您希望显示的错误由您返回以进行实例验证,您可以在 error() 回调函数中访问 erroMessage,但将错误作为参数传递并使用 errors.message 访问它。

我将为所有与验证无关的错误和验证错误(如果有)显示一个通用错误,但这取决于但您本质上需要的是捕获您自己抛出的错误并为其他任何内容显示一个通用错误,可能不理想但有效

error: function(error) {
    // my error code
    if(error.statusCode !== 412) {
      $('#results').text('A Generic error occured on the server')
    }
    // Validation error
    if (error.statusCode === '412') {
      $('#results').text(error.message);
      // or $('#results').text(error.errorName)
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    相关资源
    最近更新 更多