Тайм-аут XHR между источниками в Firefox OS

Я пытаюсь реализовать API Simple Push, и я пытаюсь сделать 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 - это просто приветственное сообщение, и я могу получить к нему доступ через веб-браузер моего устройства с Firefox OS.

Я всегда получаю ошибку тайм-аута, не важно сколько я жду, почему?

Благодарю.

2 ответа

Решение

Мне не хватало xhr.send(), и я забыл установить разрешение systemXHR:

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

Для того, чтобы повысить свой самоответ, более подробную информацию о XHR-запросах и методах можно найти в Mozilla Developer Network- XHR.

Другие вопросы по тегам