我有一个 HTML5 webapp 和一个 API。
webapp 仅在启动时从 API 中提取数据。不过一段时间后,数据可能会变得陈旧,所以我在 X 分钟不活动后刷新 web 应用程序。
唯一的问题是,如果 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 问题的内容。有谁知道这个错误是什么意思?