Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您应该检查ajax返回数据还是让javascript在空数据上抛出错误?_Javascript_Jquery_Ajax - Fatal编程技术网

您应该检查ajax返回数据还是让javascript在空数据上抛出错误?

您应该检查ajax返回数据还是让javascript在空数据上抛出错误?,javascript,jquery,ajax,Javascript,Jquery,Ajax,因此,在处理jquery中的成功数据时,您是否应该检查返回数据是否包含如下所示的必要数据: success: function (data) { if (data.new_rank !== undefined) { $('._user_rank').html(data.new_rank); } } 还是让它在不存在时失败 success: function (data) { $('._user_rank').html(data.new_rank); }

因此,在处理jquery中的成功数据时,您是否应该检查返回数据是否包含如下所示的必要数据:

success: function (data) {
    if (data.new_rank !== undefined) {
        $('._user_rank').html(data.new_rank);
    }
}
还是让它在不存在时失败

success: function (data) {
    $('._user_rank').html(data.new_rank);
}
在上一个示例中,您可以检查是否由于错误而更改了某些内容并需要进行修复


什么方法是最好的

jqueryajax请求为您提供了一种处理请求错误的方法

$.ajax(url, {
      success: function(data) {
          // success
      },
      error: function() {
         // error
      }
   });

如果您试图捕获的不是请求错误,您仍然应该自己处理错误,不要让javascript一路抛出错误。

最好检查它,查看您在完成或其他事件中可能存在的其他代码。如果没有,它们将不会在出错后运行。您也可以这样检查:

success: function (data) {
    if (data.new_rank) {
        $('._user_rank').html(data.new_rank);
    }
}

我想说的一个解决方案是遵循$.ajax中的严格数据类型,比如
dataType:json
。 使用成功和错误处理程序。如果返回数据不是json类型,则将通过错误处理程序进行处理

$.ajax(url, {
      dataType: 'json'
      success: function(data) {
          // success
      },
      error: function() {
         // error
      }
   });

如果你能修复它,检查它这是非常基于意见的,真的-这取决于你有多在乎你是否最终在你的UI中显示
未定义的
,或者您对调用的任何页面的信任程度,以确保在成功调用时正确填充数据等,并确保范围受到足够的限制,以便您不会试图处理任何未说明的内容。