Javascript HTML5网络应用程序-“;无法从null发出任何请求";使用jqueryajax
我有一个HTML5网络应用程序和一个API webapp仅在启动时从API中提取数据。但是,经过一段时间后,数据可能会过时,因此我将在X分钟不活动后刷新webapp 唯一的问题是,如果API关闭,刷新将失败,用户将看到一个错误页面。我希望避免这种情况,因为即使数据过时,也应该允许使用webapp 因此,当刷新超时过期时,它应该首先检查API是否已启动,然后再进行刷新,否则重置计时器并在X分钟后重试Javascript HTML5网络应用程序-“;无法从null发出任何请求";使用jqueryajax,javascript,ajax,html,jquery,Javascript,Ajax,Html,Jquery,我有一个HTML5网络应用程序和一个API webapp仅在启动时从API中提取数据。但是,经过一段时间后,数据可能会过时,因此我将在X分钟不活动后刷新webapp 唯一的问题是,如果API关闭,刷新将失败,用户将看到一个错误页面。我希望避免这种情况,因为即使数据过时,也应该允许使用webapp 因此,当刷新超时过期时,它应该首先检查API是否已启动,然后再进行刷新,否则重置计时器并在X分钟后重试 function refresh(reloadUrl) { $.ajax({ type
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问题的内容。有人知道这个错误是什么意思吗?您没有说明是哪个浏览器,但这是因为您正在处理的HTML文档中使用了一个文件://url吗
请参阅:您能在网络检查器中看到任何内容吗?另外,当代码显示
URL不可用时,为什么您的示例输出会显示UMR不可用
。在示例中尝试用API替换UMR,但我忽略了一点。UMR是我的API的名称。因此,您的简单解决方案是运行本地websever.:)或者,使用Firefox或允许文件中的AJAX的浏览器://(Safari是Webkit,所以也有相同的错误),而不使用文件模式。浏览器是Chrome,我正在为不同端口上的客户端和服务器运行本地web服务器。我点击的API路由应该是服务器json。只是为了确保,你的浏览器的URL是什么?(是否以http://localhost
或文件://
)