2010-11-09 6 views
1

XML cannot be the whole program - quelqu'un d'autre a vu cette erreur firebug? se passe lors de la réception de données à distance (json, pour ainsi dire) via ajax.XML ne peut pas être le programme complet

Si le type de données a été modifié json à html, fonctionne correctement.

Ceci est mon code réel en php:

Je rechargées la page, une fois que la session a expiré.

if($action->getRequest()->isXmlHttpRequest()) 
{   
    $action->getResponse()->setContent("<script>window.location.reload();</script>");  
    $action->getResponse()->send();  
} 

Firebug affiche l'erreur suivante:

XML ne peut pas être tout le programme [pause sur cette erreur] window.location.reload();

+0

vous devez fournir du code si nous voulons vous aider à comprendre ce qui ne va pas. – zzzzBov

Répondre

1

Transmettez-vous le bon format de données de l'appel Ajax? L'erreur indique que c'est quelque chose à voir avec XML, mais vous avez dit que vous l'aviez réglé sur JSON, pas sur XML.

0

Vous envoyez la chaîne "<script>window.location.reload();</script>" qui ne contient pas JSON/JS mais HTML. Le client essaie donc d'interpréter la chaîne comme étant JSON/JS mais remarque que le script entier n'est qu'un seul littéral XML.

+0

alors comment l'envoyer de manière correcte? –

+0

@RaviKhakhkhar Supprimer les balises de script. Ils ne font pas partie du JavaScript. Aussi le reste n'est pas JSON. Si vous voulez vraiment envoyer JSON, vous devrez envoyer quelque chose comme "" "window.location.reload();" ''. – Robert

0

Vous ne pouvez pas utiliser les étiquettes pendant le chargement de cette manière. Essayez de charger les instructions Javascript sans utiliser les balises dans le fichier chargé. par exemple:

Ce code génère la même erreur si je le charge dynamiquement.

<?php 
    echo "<script type='text/javascript'>alert('Hi');</script>"; 
?> 

Ce code ne génère pas d'erreur et fonctionne plutôt comme un charme:

<?php 
    echo "alert('Hi');"; 
?> 

Cela devrait vous aider.

Questions connexes