英特尔 XDK HTML5 应用程序:http 请求总是 returns 0

Intel XDK HTML5 App: http request always returns 0

我正在开发一个需要从服务器获取数据的 HTML5 应用程序。为此,我需要使用 Javascript,请参见下面的代码。但无论我做什么,它总是 returns 0。它应该使用下面的代码,return 403 正确 url,或 404 错误 url,它都没有。容器应用程序应允许跨站点脚本。我在英特尔应用程序预览中有应用程序 运行。 Windows 10 / Android 5.1.1 索尼 Experia Z1 Compact。

我要它做的是:连接服务器,给服务器正确的用户名;密码,return一个数据包,在App中使用

测试了这些:
- Wifi 可用
- 互联网连接也是如此
- jQuery 下面的版本。

    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://pageiuse.com", true);
    xhr.onload = function(){
    if (xhr.readyState == 4) {
        if(xhr.status == 200) {
            var json_string = xhr.responseText;
            var json = JSON.parse(json_string);
            toastMessage("Succes!");
        } else if(xhr.status == 404) {
            toastMessage("404!");
        } else {
            toastMessage("Error!!! " + xhr.status);
        }

    } else {
        toastMessage("readyState " + xhr.readyState);
    }};
    xhr.send(null);

欢迎所有帮助,或有关如何调试的建议。

*更新,当我使用 xhr.responseText 时有数据返回,但 xhr.status 保持为 0。一直在研究 "Cordova Whitelisting",但目前没有任何好转。

我是这样解决的:

@xmnboy 将 link 提供给:use jQuery 2

这是我使用的代码:

$.ajax(
    {
    type: "GET",    
    crossDomain: true, //;paf; see 
    url: "http://www.serverexample.com",
    async: true,
    dataType: "arraybuffer", // that is what I have incoming.
    beforeSend: function(xhr) {
        xhr.setRequestHeader("Authorization", "basic username:password");
        }
    })

    .always(function (retorno, textStatus, jqXHR) { //;paf; see 
        //toastMessage("jQuery version: " + $.fn.jquery + "\n retorno:" + retorno.status + "\n textStatus:" + textStatus + "\n jqXHR:" + jqXHR.status) ;

    var returnStatus = jqXHR.status ;
    if (returnStatus === undefined) {
        returnStatus = retorno.status;
    }
    switch (returnStatus) {
            case 0:
                console.log("0 == exit oke", "Here") ;

            case 200:
                console.log("200 == exit oke", "Here") ;
                break;

            case 404:
                console.log("404 == exit by fail", "Here") ;
                break;

            default:
                console.log("default switch happened") ;
                console.log(JSON.stringify(jqXHR.responseJSON));
                break ;
        }
});