如何为Internet Explorer创建$ .ajax()

时间:2010-06-25 11:59:41

标签: jquery internet-explorer

总而言之,我已经向数据库服务器发出了ajax请求,并且返回数据类型是xml,但是IE无法呈现它。但是在chrome上它可行。在我的代码中可能出错了实际上我对服务器没有任何响应。我在xml doc中使用的元素名称是,,,而且还有更多。所以我真的不知道问题出在哪里。

  $.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');
                            }
}

1 个答案:

答案 0 :(得分: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能够正确读取它。

在更改后清理缓存。

如果有帮助我很高兴。 抱歉英语不好。这不是我的主要语言。