2009-11-05 7 views
1

J'utilise jQuery pour configurer une requête Ajax qui saisit un flux XML à partir d'un script PHP, puis extrait certaines informations du flux et les insère dans le DOM. Cela fonctionne très bien dans Firefox; Toutefois, dans Chrome, j'obtiens une chaîne vide pour l'élément title.jQuery find() Retourne une chaîne vide dans Google Chrome

Voici la configuration de base de la requête Ajax:

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

Pour ce que ça vaut la peine, voici le script PHP qui est saisissant des données de l'alimentation. J'utilise cURL parce que je fais la demande à travers les domaines (et parce que c'était une solution rapide et sale pour le problème à la main).

$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; 

Les données XML est retourné correctement et je peux voir les valeurs des nœuds frères dans Chrome (comme ID), mais, pour une raison quelconque, je continue à obtenir une chaîne vide pour le nœud title.

Edit: Comme demandé, voici un fragment du XML concerné:

<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

Pourriez-vous afficher un extrait du XML? – Kobi

Répondre

1

Je ne l'ai pas essayé, mais assurez-vous que le fichier XML est retourné avec le type de contenu correct (text/xml). Vous pouvez également définir le dataType en xml au jQuery.ajax(options).

+0

J'ai fini par avoir besoin de spécifier le Content-Type comme rss + xml dans le script PHP. $ .get() a fini par bien fonctionner après ça. – Tom

2

La page que vous avez dans le fichier XML exemple a une entité HTML dans le titre. Cela peut causer des problèmes. Voici un blog post que j'ai trouvé sur ce numéro.

Je me demande si la même chose pour d'autres caractères spéciaux ...

Le titre de la page d'accueil ressemble à ceci:

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

J'ai le même problème. Il semble que Chrome ne gère pas les balises html dans ajax. essayez de changer "title" en "booktitle" dans le XML et dans le JS.

Questions connexes