Javascript Firefox操作系统中的跨源XHR超时

Javascript Firefox操作系统中的跨源XHR超时,javascript,firefox-os,b2g,Javascript,Firefox Os,B2g,我正在尝试实现简单的推送API,并尝试执行一个跨源XMLHttpRequest。我在做一个测试: function sendEndPoint() { var MAXIMUM_WAITING_TIME = 6000; if (!window.XMLHttpRequest) { addDebugMessage("XMLHttpRequest not supported."); } else { addDebugMessage("XMLHttp

我正在尝试实现简单的推送API,并尝试执行一个跨源XMLHttpRequest。我在做一个测试:

function sendEndPoint() {
    var MAXIMUM_WAITING_TIME = 6000;

    if (!window.XMLHttpRequest) {
        addDebugMessage("XMLHttpRequest not supported.");
    } else {
        addDebugMessage("XMLHttpRequest supported!");
        var xhReq = new XMLHttpRequest({
            mozAnon: true,
            mozSystem: true
        });
        xhReq.open("get", "http://192.168.1.69/ping/index.php", true); // Server stuck in a loop.

        //Request timeout.
        var requestTimer = setTimeout(function () {
            xhReq.abort();
            addDebugMessage("Error timeout: time was " + MAXIMUM_WAITING_TIME);
        }, MAXIMUM_WAITING_TIME);

        //It's ready.
        xhReq.onreadystatechange = function () {
            if (xhReq.readyState != 4) {
                return;
            }
            clearTimeout(requestTimer);
            if (xhReq.status != 200) {
                addDebugMessage("Error in request.");
                return;
            }

            var serverResponse = xhReq.responseText;
        };

    }
}
http://192。1681.69/ping/index.php这只是一条hello world消息,我可以使用Firefox OS设备的web浏览器访问它

我总是得到一个超时错误,不管我等待了多少,为什么

谢谢。

我缺少xhr.send(),忘记设置系统xhr权限:

"permissions": {
    "push": {
        "description": "Required for being updated."
    },
    "systemXHR" : {}
}

除了增加你的自我回答,更多关于XHR请求和方法的信息可以在

上找到,我找不到
XHR.send()这是正确的方式吗?哦,是的,我把它搞砸了,我没有注意到。现在它发送了请求,但我得到了readyState 4和错误状态0。为什么?如果readyState为4,则表示操作已完成。。你收到预期的输出了吗?我得到的是零代码响应。XMLHttpRequest中的响应代码为0表示您正被同一来源策略阻止。但是,如果我正在执行有效的交叉请求,怎么可能呢?我还必须添加“systemXHR”:{}权限。