HTML5 WebApp - 使用jQuery ajax“无法从null发出任何请求”

时间:2013-06-07 02:42:38

标签: javascript ajax html5 jquery

我有一个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问题的内容。有谁知道这个错误意味着什么?

1 个答案:

答案 0 :(得分:0)

您没有说明什么是浏览器,但这是因为您在使用的HTML文档中使用了file:// url?

请参阅:Problems with jQuery getJSON using local files in Chrome