0

我是 Phonegap 的新手,我在解析 XML Url 时无法获得响应。我尝试过的是,

function initLoginPage() {    
    var xmlhttp = new XMLHttpRequest();
    var urlString = "url/app/api.php?fn=employees";
    xmlhttp.onreadystatechange = processData;
    xmlhttp.open("GET", urlString, true);
    xmlhttp.send(); 
}

function processData() {    
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
             document.getElementById("result").innerHTML=xmlhttp.responseText;                      
              } else{document.getElementById().innerHTML = "<b>Please Wait..</b>";}
}

我在设备就绪时调用了 initLoginPage 函数。我必须在 listView 中显示响应。我正在使用 JQuery Mobile。Url 的响应是

<?xml version="1.0" encoding="UTF-8" ?>
<details>
<responsecode>200</responsecode>
<Employee>
<name>name</name>
<Fathername>fathename</Fathername>
<Address>address</Address>
<Number>12342456</Number>
<Enumber>4324421341234</Enumber>
<OfficeMail>test@gmail.com</OfficeMail>
<PersonalMail>test@gmail.com</PersonalMail>
<EmployeeID>1</EmployeeID>
<DOB>21-06-1991</DOB>
<DOJ>05-03-2013</DOJ>
<PanNumber>123456</PanNumber>
<image>./images/1380372683.png</image>
</Employee>
</details>
4

2 回答 2

0

你犯了错误

  var urlString = url+"/app/api.php?fn=employees";
于 2013-09-30T08:46:11.577 回答
0

变量 xmlhttp 只定义在 initLoginPage 函数的范围内,所以它没有在 processData 中定义。

有两种方法可以解决您的问题。您在 processData 中使用它而不是 xmlhttp:

function initLoginPage() {    
    var xmlhttp = new XMLHttpRequest();
    var urlString = "url/app/api.php?fn=employees";
    xmlhttp.onreadystatechange = processData;
    xmlhttp.open("GET", urlString, true);
    xmlhttp.send(); 
}

function processData() {    
   if (this.readyState == 4 && this.status == 200) {
       document.getElementById("result").innerHTML = this.responseText;                      
   }
   else {
       document.getElementById().innerHTML = "<b>Please Wait..</b>";}
   }
}

或者将 processData 作为匿名函数直接传递给 xmlhttp.onreadystatechange:

function initLoginPage() {    
    var xmlhttp = new XMLHttpRequest();
    var urlString = "url/app/api.php?fn=employees";
    xmlhttp.onreadystatechange = function() {    
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("result").innerHTML = xmlhttp.responseText;                      
        }
        else {
            document.getElementById().innerHTML = "<b>Please Wait..</b>";}
        }
    }
    xmlhttp.open("GET", urlString, true);
    xmlhttp.send(); 
}
于 2013-09-30T10:49:20.183 回答