2009-12-23 3 views
0

j'ai un fichier php qui affiche du texte encodé JSON via

echo '(' . json_encode($final) . ')'; 

Et j'ai un fichier javascript qui va chercher cette page

$.getJSON(file, function(data){ 
var object = eval(data); 
alert(object); //for testing 
... 

Quand un autre navigateur que firefox 3.5 visite la page qui appelle .getJSON il alerte null

MAIS !!! Si je prends le texte qui est sorti par le fichier php le coller dans un nouveau fichier et le charger via .getJSON cela fonctionne bien. Ce n'est que lorsque sa sortie par php que cela ne fonctionne pas. La seule différence que je peux voir est que la longueur du contenu du fichier PHP est de 2 plus que l'autre, je ne peux pas comprendre pourquoi.

Merci


MISE À JOUR
J'ai créé un petit tableau pour le tester avec d'autres données et cela fonctionne. Il y a quelque chose dans mes données qui cause le problème. Vous cherchez maintenant ...

un appel à array_merge est le coupable.

Répondre

0

Je l'ai réduit à un appel à array_merge qui corrompt les données en quelque sorte. Merci

2

data n'est pas une chaîne, c'est un objet JSON. Donc eval ne fonctionnera pas dessus. Essayez ce qui suit à la place:

$.getJSON(file, function(data){ 
alert(data); //for testing 
+0

toujours retourner null dans tous les navigateurs sauf firefox 3.5 – Galen

+0

Essayez de supprimer les parenthèses de php. Il n'y a vraiment aucun intérêt à les avoir là. – Marius

Questions connexes