Problèmes avec .getJSON $ dans certains navigateurs
-
21-09-2019 - |
Question
J'ai un fichier php qui affiche le texte codé 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 navigateur autre 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 collez-le dans un nouveau fichier et charger que via .getJSON il fonctionne très bien. Il est seulement quand sa sortie en php qui ne fonctionne pas.
La seule différence que je peux voir est que la longueur du contenu du fichier PHP est 2 plus que l'autre, je ne peux pas comprendre pourquoi.
Merci
UPDATE
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. Maintenant à la recherche ...
un appel à array_merge est le coupable.
La solution 2
Je l'ai réduit à un appel à array_merge
qui corrompt les données en quelque sorte.
Autres conseils
data
est pas une chaîne, il est un objet JSON. Par conséquent, eval ne fonctionnera pas sur elle. Essayez ce qui suit à la place:
$.getJSON(file, function(data){
alert(data); //for testing