我有一个HTML5网络应用程序和一个API。
webapp仅在启动时从API中提取数据。经过一段时间后,数据可能会变得陈旧,所以我在X分钟不活动后刷新了webapp。
唯一的问题是,如果API关闭,刷新将失败,并且将向用户显示错误页面。我想避免这种情况,因为即使数据是陈旧的,也应该允许使用webapp。
因此,当刷新超时到期时,应首先检查API是否在刷新之前是否已启动,否则请重置计时器并在X分钟内重试。
function refresh(reloadUrl) {
$.ajax({
type: 'head',
url: window.config.HOST_DOMAIN,
success: function () {
window.location = reloadUrl;
},
error: function (jqXHR) {
console.log("Tried to refresh client, but API is unavailable (Error: " + jqXHR.status + ", URL: " + window.config.HOST_DOMAIN + ")");
clearTimeout(window.IDLE_POWER_OFF);
window.IDLE_POWER_OFF = window.setTimeout(window.client.navigation.splash.reload, window.IDLE_TIMEOUT);
}
});
}
然而,当我尝试这个时,我总是进入错误回调,以及我的控制台日志中的以下内容:
XMLHttpRequest cannot load http://mydomain.com/api/whatever. Cannot make any requests from null.
Tried to refresh client, but API is unavailable (Error: 0, URL: http://mydomain.com/api/whatever)
试图搜索错误“无法从null发出任何请求”,但它只显示了有关iOS问题的内容。有谁知道这个错误意味着什么?
答案 0 :(得分:0)
您没有说明什么是浏览器,但这是因为您在使用的HTML文档中使用了file:// url?
请参阅:Problems with jQuery getJSON using local files in Chrome