Javascript Firefox操作系统中的跨源XHR超时
我正在尝试实现简单的推送API,并尝试执行一个跨源XMLHttpRequest。我在做一个测试: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
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”:{}权限。