2010-06-25 49 views
1

最后,我有一个Ajax请求到数据库服务器和返回数据类型是xml但IE无法呈现它。但在铬它的作品。什么可能是错误的,我的codeActually我没有得到响应的服务器。我在xml文档中使用的元素名称是,,,而不是更多。所以我真的不知道问题在哪里。

$.ajax({ 
     url:'gethint.php', 
     type:'GET', 
     data:'p=p' + '&cust_uid=i', 
     datatype:'xml', 
     timeout:5000, 
     error:function(){alert('unable to establish connection to the server ');}, 
     success:function(xml){outputResponseXML(xml);} 
    }); 
    function outputResponseXML(xml) 
{ 
    $('div#me').empty(); 
    var element =$(xml).find('USER'); 
     if(element.length>0) 
      { 

      $(xml).find('USER').each(
      function(index) 
       { 

        var ename= ($(this).find('ENAME').text()=='E')?'':$(this).find('ENAME').text(); 
        var operator=($(this).find('OPERATOR').text()=='E')?'':$(this).find('OPERATOR').text(); 
        var pnr =($(this).find('PNR').text()=='E')?'':$(this).find('PNR').text(); 
        var inr=($(this).find('INR').text()=='E')?'':$(this).find('INR').text(); 
        var $newDiv= $('<div class=\"items\" id =\"'+inr +'\">' 
           +ename+'<br/>'+operator+ 
           '<br/>'+ pnr+'</div>'); 
            $newDiv.appendTo('div#me'); 
            }); 

          } 
          else 
          { 
           $('div.me').html('no suggestions found'); 
          } 
} 
+0

你可以发布回复吗? IE不喜欢XML中实际HTML元素的元素名称。 – 2010-06-25 12:03:05

+0

检查您的接受率! – Thariama 2010-06-25 12:04:24

+0

我发现你有一天有类似的问题。 http://stackoverflow.com/questions/3081071/convert-a-string-to-xml-doc-with-jquery-or-the-other-way-round **亚伦**的答案有帮助吗?它应该工作。您正在使用的IE中禁用了“加载项”?它显然在一些装置中发生。 – user113716 2010-06-25 12:44:36

回答

1

我认为问题出在您的“gethint.php”页面。

尝试设置你的PHP页面的标题:

 
header("Content-Type: text/xml; charset=utf-8", true); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: -1"); 
header("Pragma: no-cache"); 

不要忘记打印此线在你的XML结果(必须是第一行)

<?xml version="1.0" encoding="utf-8"?> 

这保证Internet Explorer将正确读取它。

更改后清理缓存。

我很高兴它是否有帮助。 对不起,英语不好。这不是我的主要语言。

+0

你的英语在这篇文章中几乎完美无缺。你只错过了一个不要而不是。 – 2010-06-25 16:15:25

+1

+1。内容类型是关键。如果脚本无法识别它的XML,它甚至不会去解析它。 responseText将具有正确的数据,但responseXML将为null。如果网站流量很高并且该文件被加载很多,禁用浏览器端缓存可能会产生极其负面的影响。 – Andrew 2010-06-25 16:18:38