0

我编写了离线工作的 HTML/JS 应用程序 - 它放在 SD 卡上并使用默认的 4.1 Android 浏览器运行。

我正在使用 jQuery 在 Internet 上托管 Ajax 请求。因为我是从本地文件系统运行它,所以它显然是一个跨域请求。服务器具有基于标头操作的机制,可启用此类 CD 请求。一段令人不安的代码:

$.ajax({
    type: "POST",
    crossDomain: true,
    data : formData,
    cache: false,
    url: "http://someurlwhichhandlescrossdomain.com",
    success: function(data){
        alert("hurrayy!");

    },
    error: function(xhr, ajaxOptions, thrownError) {
        alert("bah :/");
        alert(xhr.status);
        alert(thrownError);
    }
});

问题是错误函数总是被执行,尽管数据被正确发送并且服务器正确地注册了请求。xhr.status 始终为 0,并且 throwedError 为空。

同一段代码在桌面版 Chrome 上正常工作(警报“万岁”)。

目前我使用基于 的解决方法navigator.onLine,如果值为 true,我假设数据已正确发送到服务器(因为我不需要从服务器读取任何内容)。但是,此解决方案很糟糕,因为如果连接正常,但服务器不正常,我将无法处理。

有任何想法吗?

谢谢,卡罗尔

4

0 回答 0