Проблемы с $ .getJSON в некоторых браузерах - PullRequest
0 голосов
/ 23 декабря 2009

У меня есть php-файл, который выводит кодированный в json текст через

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

И у меня есть файл JavaScript, который выбирает эту страницу

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

Когда любой браузер, кроме Firefox 3.5, посещает страницу, которая вызывает .getJSON, он предупреждает null

НО !!! Если я возьму текст, который выводится с помощью файла php, вставьте его в новый файл и загрузите его через .getJSON, он будет работать нормально. Только когда он выводит php, он не работает.

Единственное отличие, которое я вижу, состоит в том, что длина содержимого файла PHP на 2 больше, чем у другого, я не могу понять, почему.

Спасибо


UPDATE
Я создал небольшой массив, чтобы проверить его с другими данными, и он работает. В моих данных есть что-то, что вызывает проблему. Глядя сейчас ...

виновником является вызов array_merge.

Ответы [ 2 ]

2 голосов
/ 23 декабря 2009

data это не строка, это объект JSON. Поэтому Eval не будет работать на этом. Вместо этого попробуйте следующее:

$.getJSON(file, function(data){
alert(data); //for testing
0 голосов
/ 23 декабря 2009

Я сузил его до вызова array_merge, который как-то портит данные.

...