Javascript 使用XMLHttpRequest从服务器获取数据(适用于Phonegapp BlackBerry应用程序)
我正在开发一个BlackBerry Phonegap应用程序。因此,我使用的是JavaScript 从本地文件中,我试图获取服务器中的一些数据(裸文本)。我正在尝试不同的浏览器(主要是Mozilla和Chrome)。我使用的代码如下:Javascript 使用XMLHttpRequest从服务器获取数据(适用于Phonegapp BlackBerry应用程序),javascript,xmlhttprequest,readystate,Javascript,Xmlhttprequest,Readystate,我正在开发一个BlackBerry Phonegap应用程序。因此,我使用的是JavaScript 从本地文件中,我试图获取服务器中的一些数据(裸文本)。我正在尝试不同的浏览器(主要是Mozilla和Chrome)。我使用的代码如下: try{ request = new XMLHttpRequest(); request.onreadystatechange = processResults; request.open('GET', url, false); r
try{
request = new XMLHttpRequest();
request.onreadystatechange = processResults;
request.open('GET', url, false);
request.send();
}catch(e){
alert('exception performing data request: ' + e.name + '; ' + e.message);
}
以及回调:
function processResults(){
if(request.readyState == 4){
if(request.status == 200){
document.getElementById('divResults').innerHTML = request.responseText;
}else{
alert("Error! Status" + request.status + " - " + request.statusText);
}
}
}
我遇到的问题是数据永远不会被提取。异常返回以下错误:
NS_ERROR_FAILURE; Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
我做了一些研究,这些问题最常见的原因是同源政策。但是,我肯定会在以下情况下禁用它:
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
alert("UniversalBrowserRead failed");
}
Firebug只是指出错误出现在
request.send()
行中,但没有给出进一步的信息。xmlHTTP状态
为0,但不显示任何request.statusText
。我做错了什么?提前感谢:)。解决方案是在Internet Explorer中测试应用程序,信不信由你。在IE中,没有出现错误消息,一切正常。经过多次测试,这就是我的代码。希望对其他人有用:
// Create the XHR object.
// For non-IE browsers (Chrome, Mozilla, Opera, Safari, etc.).
if(XMLHttpRequest){
request = new XMLHttpRequest();
// For IE.
}else if(ActiveXObject){
try{
request = new ActiveXObject('Msxml2.XMLHTTP');
}catch(e){
request = new ActiveXObject('Microsoft.XMLHTTP');
}
}else{
alert('Could not create XMLHTTP request object');
}
// Request the data.
try{
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status != 200){
console.log(request.responseText);
alert("Error! Status " + request.status + " - " + request.statusText);
}
};
request.open('GET', targetURL, false);
request.send();
}catch(e){
alert('Error while performing the request: ' + e.name + '; ' + e.message);
}
// Empty the content into a proper JavaScript variable.
var text = request.responseText;
var xmlText = eval("(" + text + ")");
// Just fetch the data you want from the xmlText object.
XHR的回调在哪里?刚刚添加了它,包括它的代码。