使用ajax请求传递js对象

时间:2014-07-11 06:25:04

标签: javascript jquery ajax node.js

我需要通过ajax请求将js对象发送到服务器; 是包含节点js中Sequelize orm的sql查询参数的对象;一个例子是这样的:

var data =
{
    include: [
        { model: model.Shop },
        { model: model.Product,
            include: [
                { model: model.File }
            ]
        }
    ]
}

它可以包含嵌套在多个级别上的对象数组; 在发送之前,如果需要,我可以将其转换为有效的JSON,如下所示:

var data =
{
    "include": [
        { "model": "model.Shop" },
        { "model": "model.Product",
            "include": [
                { "model": "model.File" }
            ]
        }
    ]
}

我试图将其作为JSON发送:

$.ajax({
    //...
    data: data
});

问题是,当在节点服务器中我执行接收到的字符串的JSON.parse时,每个属性的值都是一个字符串,并且它不被识别为模型对象;

如何让我的服务器能够理解这一点?

2 个答案:

答案 0 :(得分:4)

尝试使用JSON.stringify

$.ajax({
    data: JSON.stringify(data)
});

答案 1 :(得分:0)

不要手动为数据对象添加引号。

JSON.stringify(data)

它会将其转换为可接受的字符串格式。