0

我有一个 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,我不知道为什么。

谢谢


更新
我创建了一个小数组来用其他数据测试它并且它正在工作。我的数据中有一些东西导致了这个问题。现在看...

对 array_merge 的调用是罪魁祸首。

4

2 回答 2

2

data不是字符串,它是 JSON 对象。因此 eval 将无法处理它。请尝试以下操作:

$.getJSON(file, function(data){
alert(data); //for testing
于 2009-12-23T17:26:53.610 回答
0

我已将其范围缩小到以array_merge某种方式破坏数据的调用。

于 2009-12-23T17:55:18.483 回答