我的客户端中有以下代码,在页面加载时执行。我的客户端页面和JS由模式我的Node.js脚本和Express
托管 initHomePage : function(options) {
$.getJSON('siteinfo.json',
function(data) {
//called when complete
alert('process complete' + data);
});
},
正在调用以下Node.js
exports.get_site_setup = function (req, res) {
var dbc;
async.waterfall([
// get a connection
function (callback) {
db.db(callback);
}
,querylookup
], completed);
function querylookup(dbclient, callback) {
dbc = dbclient;
dbc.query("SELECT site_id, "+
"name, "+
"quicklist, "+
"image, "+
"image2, "+
"message, "+
"fbflag, "+
"facebookurl, "+
"twflag, "+
"twitterurl, "+
"contactflag, "+
"contactemail, "+
"eventsflag, "+
"loyaltyflag, "+
"loyaltyclub, "+
"loyaltymessage, "+
"location_id, "+
"locdescription "+
"FROM LOCATION_LOOKUP_ACTIVE_VIEW "+
"where site_id = 7 and location_id = 8",
callback);
}
function completed (err, rows, fields) {
if (dbc) dbc.end();
if (err) {
callback (err);
} else {
console.log(rows[0]);
res.contentType('json');
res.send(JSON.stringify(rows[0]));
}
}
};
当我期望发出请求时,我的console.log正在触发并在控制台中显示我预期的JSON。
但是,我浏览器中弹出的提醒框显示
“处理完成[object Object]”
为什么我的JSON没有从我的服务器端传递到我的客户端脚本?
答案 0 :(得分:3)
您发回的JSON正在被解析为JavaScript对象。如果不是你做过的提醒
console.dir(data);
它会更清楚。
这就是$.getJSON()
的整点。
答案 1 :(得分:1)
要扩展@Pointy所说的内容,您尝试在警报中显示的“数据”应该是JSON响应。如果您想在警报中看到它,请尝试使用stringify:
alert('process complete ' + JSON.stringify(data));