繁体   English   中英

JSON没有从Node.js传递到.getJSON

[英]JSON not passing from Node.js to .getJSON

我的客户端中有以下代码,该代码在页面加载时执行。 我的客户端页面和JS是通过Express的Node.js脚本托管的

    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。

但是,在我的浏览器中弹出的警报框显示

“处理完成[对象对象]”

为什么我的JSON无法从服务器端传递到客户端脚本?

您发回的JSON被解析为JavaScript对象。 如果不是您发出警报

console.dir(data);

会更清楚。

这是整点样-的$.getJSON()

为了扩展@Pointy所说的内容,您要在警报中显示的“数据”应该是JSON响应。 如果要在警报中查看字符串,请尝试如下所示:

alert('process complete ' + JSON.stringify(data));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM