使用Ext.data.ScriptTagProxy时出现意外的令牌语法错误



好的,我正在使用Ext.data.ScriptTagProxy从远程服务器(我恰好管理该服务器)提取json数据,并收到此错误:未捕获语法错误:意外令牌:

我正在使用以下PHP页面查询数据库,并将结果编码为json:

<?php
header('Content-Type: text/javascript');
$db_name = "foo"; // The name of the database being used.
$db = mysql_connect("localhost", "foo user", "foo pass") or die ("Unable to connect to    database.");
 mysql_select_db("$db_name", $db);
echo '{"recipes": ';     
$query = "SELECT * FROM wp_recipes"; 
$result=mysql_query($query);
$_ResultSet = array();
while ($row = mysql_fetch_assoc($result)) {
   $_ResultSet[] = $row;
}
   echo json_encode($_ResultSet); 
   echo "}";  
?>

这是我使用Sencha进行跨域调用时使用的代码:

var store = new Ext.data.Store({
model  : 'Recipes',
            sorters: [
                    {property: 'recipeName', direction: 'ASC'}
                     ],
            getGroupString : function(record) {
            return record.get('recipeName')[0];
            },
        proxy: new Ext.data.ScriptTagProxy({
            url: 'http://myvisalusdiet.com/app/json_output2.php'
        }),
        reader: new Ext.data.JsonReader({
            root: 'recipes',
            idProperty : 'recipeName',
            id: 'id'
        }),
        autoLoad : true
    });

有人看到有什么异常情况会导致语法错误吗?提前感谢您的帮助!

首先,我很难验证您的json。当前包装在(括号)中,而不是{括号}中

([{"id":"3","ingredients2":"4 oz. (1/2 cup orange juice)","ingredients3"
...
,"ingredients":"6 oz. skim milk","website":null}]);

并且不确定javascript是否太有用,例如firebug希望看到"application/json"!=用于布局数据的"application/javascript"。不过,这并不影响解析/linting。

最新更新