jQuery find()在Google Chrome中返回一个空字符串

我正在使用jQuery设置Ajax请求,该请求从PHP脚本中获取XML提要,然后从提要中解析一些信息并将其插入到DOM中。 它在Firefox中运行良好; 但是,在Chrome中,我得到一个title元素的空字符串。

这是Ajax请求的基本设置:

 $.get('feed.php', function(oXmlDoc) { $(oXmlDoc).find('entry').each(function() { $(this).find('title').text(); $(this).find('id').text(); // do other work... }); }); 

对于它的价值,这里是从脚本中获取数据的PHP脚本。 我正在使用cURL,因为我正在跨域提出请求(因为这对于手头的问题来说是一个快速而肮脏的解决方案)。

 $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $str_feed_url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $xml = curl_exec($curl); curl_close($curl); echo $xml; 

XML数据正在正确返回,我可以看到Chrome中兄弟节点的值(例如ID ),但无论出于何种原因,我继续为title节点获取一个空字符串。

编辑:根据要求,这是相关XML的片段:

  http://TheAddress.com/feed/01 The Title of the Post Tom 2009-11-05T13:46:44Z 2009-11-05T14:02:19Z ...  

我没有尝试过,但请确保返回的xml具有正确的内容类型(text / xml)。 您还可以在jQuery.ajax(options)中将dataType设置为xml。

示例XML中的页面在标题中包含HTML实体。 这可能会导致问题。 这是我在这个问题上发现的博客文章 。

我想知道其他特殊角色是否也一样……

主页标题如下所示:

 The Address Hotels + Resorts 

我也有同样的问题。 似乎Chrome不能处理ajax中的html标签。 尝试在XML和JS中将“title”更改为“booktitle”。