Firefox OS中的跨源XHR超时

时间:2014-02-02 16:55:51

标签: javascript firefox-os b2g

我正在尝试实现Simple Push 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。 168. 1. 69 / ping / index.php它只是一个hello world消息,我可以使用我的Firefox OS设备的Web浏览器访问它。

我总是遇到超时错误,我等多久没关系,为什么?

感谢。

2 个答案:

答案 0 :(得分:0)

我缺少xhr.send()而忘记设置systemXHR权限:

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

答案 1 :(得分:0)

Jut提出自我答案,有关XHR请求和方法的更多信息,请访问Mozilla Developer Network- XHR