javascript - 如何覆盖 JSON 错误并防止加载空白页面?
问题描述
如何防止我的 JSON 提要崩溃并忽略数据库中的错误(如果它们在运行时发生),以及如何将未定义的错误更改为字符串以作为“待处理”或“不可用”之类的后备返回。
我尝试输入 Try, catch, finally 方法。此外,我发现条件等于和空的 If 语句将 undefined 更改为“字符串”
var flight = document.getElementById("flight");
var time = document.getElementById("time");
var airline = document.getElementById("airline");
var stat = document.getElementById("status");
var cities = document.getElementById("cities");
//Loading the document
//this is for updating the url
var url = './airport-test.json';
//var url = './proxy.php';
$(document).ready(function () {
$.ajax({
type: "GET",
dataType: "json",
url: url,
async: true,
contentType: "application/json; charset=utf-8",
cache: false,
success: function (data) {
var flightString = "";
var timeString = "";
var airlineString = "";
var statString = "";
var citiesString = "";
if(data) {
try {
var a = JSON.parse(data);
console.log(a);
} catch(e) {
var errorMessage = e.name + '' + e.message;
console.log(errorMessage);
}
}
for (i= 0,l = data.length = 16; i < l; i++ ) {
code here I erased to fit this question better...
}
flight.insertAdjacentHTML('beforeend', flightString);
time.insertAdjacentHTML('beforeend', timeString);
airline.insertAdjacentHTML('beforeend', airlineString);
stat.insertAdjacentHTML('beforeend', statString);
cities.insertAdjacentHTML('beforeend', citiesString);
}});
});
我正在使用带有铬的树莓派,我只是希望 JSON 提要仍然显示,即使出现错误而不是空白页。它大部分时间都有效。此外,希望将 undefined 从错误更改为后备字符串。
解决方案
不完全确定到底是什么问题,大胆猜测服务器没有正确响应。
定义错误处理程序,
$.ajax({
type: "GET",
dataType: "json",
url: url,
async: true,
contentType: "application/json; charset=utf-8",
cache: false,
success: function (data) {
....
}
error: function (error) {
// handle your error here.
....
}
推荐阅读
- python - 请帮助我,如何安装wordcloud?
- c# - 显示从另一个用户控件 WPF C# 触发的用户控件?
- bootstrap-4 - 轮播(引导)图像未显示?
- python - 将txt文件转换为邻接矩阵
- google-compute-engine - Apache Tomcat 8.5.56 日志
- javascript - 如何根据填写html表单使页面区域可见?
- javascript - 如何从比较器数组 ['<', '<=', '>', '>='] 中进行比较?
- google-apps-script - Google 表格中的相关数据验证
- python - 如何使用 Selenium 和 Python 从华尔街日报市场数据报价中刮取每个父母的第一个元素?
- javascript - 在使用 EJS 显示之前检查内容扩展类型