1
首先它不是另一个跨域错误线程。我正在研究一个使用两个API(主要为&备份)的简单Web应用程序从不同服务器检索相同的数据。我用的是以下模式:getJSON错误处理 - 使用2个API
//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
//code to get and handle the data from main API
}).fail(function() {
$.getJSON(backupUrl, function(results) {
//code to get and handle the data from backup API
});
});
的问题是主要的API可以在许多方面失败:
- 没有反应 - 如预期
- 因子效应我的代码工作正常,但由于与API服务器的外部问题,返回具有空属性的对象。
第二个选项很棘手,因为它不适合getJSON .fail场景。我能处理的方式是添加一个if语句来检查对象的属性不是null,将代码从backupAPI处理程序复制到检索备份源,所以它看起来是这样的:
//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
if (results.property) {
//code to get and handle the data from main API
} else {
//code to get and handle the data from backup API
}
}).fail(function() {
$.getJSON(backupUrl, function(results) {
//code to get the data from backup API
});
});
然而,本质上我有在我的main.js文件的两个地方有相同的代码块,这似乎不是一个好习惯。
难道你们能帮我正确解决这个问题,以避免在这个地方放两次相同的代码吗?谢谢。
嗯,我想这可以工作。我深入json错误处理程序,我没有注意到明显的,我的上帝...... :)谢谢 – P89