Ajax PHP没有为我提供任何响应文本

时间:2011-10-14 03:10:32

标签: php javascript ajax

您好我正在尝试使用脚本从php站点获取XML文本。但是,它没有返回任何数据。这就是我在做的事情。

<head>
<script type="text/javascript">
function getImei()
{
var imei = document.getElementById("imeiInput").value;
if (imei=="")
  {
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }


  xmlhttp.onreadystatechange = function()
  {
  if (xmlhttp.readyState==4)
    {
    document.getElementById("txtResult").innerHTML=xmlhttp.responseText;
    }
  } 


xmlhttp.open("GET","http://www.phonesite.com/xml/api/phone.php?IMEI=" + imei,true);
xmlhttp.send();


}
</script>
</head>
<body>
    <input type="textbox" id="imeiInput"/>
    <input type="button" onClick="getImei()" id="btnSubmit" text="Submit"/>
    <p id="txtResult"></p>
</body>
</html>

当我这样做时,xmlhttp.readystate停止在1.当我将“xmlhttp.onreadystatechange = function()”放在xmlhttp.send()下面时,它表示FireBug中的就绪状态为4但它完全跳转完成功能而不进入内部并完成。

另外,我确实尝试使用查询字符串直接在我的浏览器中输入url并返回文本。查看GET请求,当Javascript将其发送出去以及我输入时,它们是相同的。

Date    Fri, 14 Oct 2011 01:34:05 GMT
Server  Apache
Content-Encoding    gzip
Vary    Accept-Encoding
Content-Length  87
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Content-Type    text/xml
Request Headersview source
Host    www.phonesite.com
User-Agent  Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive

我在firebug中为xml文本收到此错误。

XML Parsing Error: no element found Location: moz-nullprincipal:{baefeeae-cd08-9641-a08f-6b3c3396e8a7} Line Number 1, Column 1:

1 个答案:

答案 0 :(得分:2)

当您从服务器请求响应为XML时,不仅仅是使用responseXML读取该响应的文本

instead of "responseText"; you need for xml "responseXML"

这将至少返回文本并让你继续前进

 function getImei()
 {

 if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }

 var imei = document.getElementById("imeiInput").value;
 if (imei=="")
   {
   return;
   }

 if(xmlhttp) {
 xmlhttp.open("GET","http://www.phonesite.com/xml/api/phone.php?IMEI=?" + imei, true); 

 xmlhttp.onreadystatechange = function()
 {
 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
 document.getElementById("txtResult").innerHTML=xmlhttp.responseText; // if the returned           content type is is "text/xml" innerhtml will strip out the tags

 }
 }
 xmlhttp.send(null);
 }
 }