Тайм-аут 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.