我有一个基于Node-Express的函数:
//function on server side
app.get('/loginCheck', loggedCheck, function(req, res) {
var data = {local: {}, facebook: {}};
data.id = req.user._id;
data.local.email = req.user.local.email;
data.local.fname = req.user.local.fname;
data.local.lname = req.user.local.lname ;
data.local.college = req.user.local.college ;
data.local.degree = req.user.local.degree ;
data.year = req.user.year ;
data.mobile = req.user.mobile ;
data.city = req.user.city ;
data.facebook.id = req.user.facebook.id ;
//res.json(data);
var x = {};
x.name = "someName"
res.json(x);
})
以下是客户端代码,用于发起Ajax请求:
//function on client side making an ajax request
$.get("/loginCheck",function(data,status){
console.log(data);
});
在服务器端的旧代码中,
req.user
是由mongoose创建的mongodb对象。我想做的是将数据对象(其中包含req.user
对象的一些选定属性)发送并作为JSON响应发送。变量
x
是一个自定义创建的变量。问题是: 当我将
data
对象发送到客户端时,也会添加__proto__
属性,而当我将x
发送到客户端时不会发生这种情况。
但是,我不希望在客户端上有__proto__
,因为从一些文章中我发现__proto__
存在安全问题。我需要帮助删除
data
对象中的__proto__
。
__proto__
,它是一个内部属性。 - Bhojendra Rauniyar.__proto__
不是内部属性,而是从Object.prototype
继承的一个属性。 - Bergires.json
不会包含__proto__
属性。你确定在实际的 HTTP 响应中看到了它吗? - JohnnyHK