2009-11-05 20 views
1

我使用jQuery來設置一個Ajax請求,它從PHP腳本獲取XML feed,然後從feed中分析一些信息並將其插入到DOM中。 它在Firefox中正常工作;但是,在Chrome中,我收到了title元素的空字符串。jquery find()在谷歌瀏覽器中返回一個空字符串

這裏是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片段:

<entry> 
    <id>http://TheAddress.com/feed/01</id> 
    <title type="text">The Title of the Post</title> 
    <author><name>Tom</name></author> 
    <published>2009-11-05T13:46:44Z</published> 
    <updated>2009-11-05T14:02:19Z</updated> 
    <summary type="html">...</summary> 
</entry> 
+0

你能發佈一個xml的片段嗎? – Kobi 2009-11-05 14:12:18

回答

1

我還沒有嘗試過,但要確保XML的格式返回正確的內容類型(text/xml)。您還可以在jQuery.ajax(options)上將dataType設置爲xml。

+0

我最終需要在PHP腳本中將Content-Type指定爲rss + xml。 $ .get()在那之後結束了工作。 – Tom 2009-11-05 19:42:22

2

您在示例XML具有該頁面在標題的HTML實體。這可能會導致問題。這是我在這個問題上找到的blog post

不知是否同樣適用於其他特殊字符...

主頁標題是這樣的:

<title>The Address Hotels + Resorts</title> 
0

我有同樣的問題。 看來比Chrome不處理Ajax中的html標籤。 嘗試在XML和JS中將「title」更改爲「booktitle」。