好的,我正在使用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。