我有一个简单的API,它返回项目信息,其中一个属性是布尔值。我的服务器端返回一个false
布尔值,但出于某种原因,当它在我的客户端打印出来时,它是true
:
api.get('/api/project/:id', function(req, res) {
knex('projects').where({
project_code: req.params.id
}).then(function(data) {
console.log(data[0].restricted_access) //prints out FALSE
res.send(data);
}).catch(function(error) {
console.log('error: ' + error);
res.sendStatus(500);
});
});
我的API调用:
$.ajax({
type: "GET",
url: "/api/project/" + project_code,
success: function(data, status) {
console.log(data[0].restricted_access) //prints out TRUE
},
error: function(a, b,c ) {
console.log(a);
console.log(b);
console.log(c);
}
});
示例项目对象:
[ { id: 14,
project_code: 'abc123',
restricted_access: false
} ]
有人可以帮忙吗?
提前致谢!!
答案 0 :(得分:0)
我们只需要知道它在哪个方面打破了:
console.log(data[0].restricted_access)
这返回false,因此您的书架对象很好。让我们测试前端的任何类型的http拦截器是否都是问题:
res.send({restricted_access: false})
如果您的前端正确检索到错误,则在序列化书架对象时会发生此更改。
作为最后的手段,让我们试试:
console.log(data[0].toJSON())
调查它是假还是真。如果是,则搜索代码以找出覆盖序列化方法的位置:)
如果这也没有解决你的问题,那么我只能祝你好运