【发布时间】:2018-09-27 07:55:02
【问题描述】:
我正在使用 JSON 格式的 Nodejs res.end() 发送数据,并且我还将标头设置为 application/json,但我没有在 jquery ajax 调用的成功函数中获取数据,而是得到了数据直接以 JSON 格式,但我希望它出现在 jquery ajax 调用的成功函数中,因为我必须在数据表中显示它们。我什至尝试了 res.render() 和 res.send() 但无法得到它。请帮忙!!
Nodejs 代码
router.get('/user_list',(req,res,next)=>{
let new_password = generator.generate({
length: 16,
numbers: true,
symbols: true,
uppercase: true,
strict: true,
exclude: ["(",")","[","]",":","-",",","{","}","<",">",".","^","/"]
});
connection.query("update user, client set user.status = client.status where user.client_id = client.id",(error,result)=>{
if(error){
console.log(error);
}else{
connection.query('select user.username,user.email,user.msg_id,user.status,system.name from user inner join system on user.system_id = system.id; select id, name from client;',(error,result)=>{
if(error){
console.log(error);
}else{
let value = {values: result,new_password};
//res.json(value);
// res.render('user_list', {user_data: value});
res.writeHead(200, { 'Content-Type': 'application/json' });res.end(JSON.stringify(value));
}
})
}
})
})
JQuery 代码
$(document).ready(function(){
$.ajax({
url:'user_list',
type:'GET',
//dataSrc: 'user_list',
datatype:'json',
success: function(data){
console.log(data);
$('#example').dataTable({
data:data,
columns: [
{data:'values[0][1].username'},
{data:'values[0][1].name'},
{data:'values[0][1].email'},
{data:'values[0][1].msg_id'},
]
});
}
});
});
【问题讨论】:
-
1.永远不要出于明显的原因将代码发布为图像 2. 只需使用
res.send(some_object)并 express 将适当地设置标题 3.but i am not getting the data in the success function of jquery ajax call, instead i am getting the data directly in json format什么?这是两件不相关的事情。 -
我试过 res.send() 但我无法在 jquery ajax 调用的成功函数中得到响应。@ChrisG
-
控制台有错误吗?请注意,由于这是一个 GET 请求并且您没有任何参数,您只需在浏览器中转到
localhost:3000/user_list,您应该会看到 JSON。那样有用吗?另外,请编辑您的问题,使其包含实际代码,否则此问题可能会被关闭。 -
控制台没有错误,我也在浏览器中以这种方式得到响应,但我不希望这样,我希望它在成功函数中,以便我在数据表中填充数据。@克里斯格
-
但是你在成功函数中得到了它。
console.log(data)是里面成功函数!我开始认为这与ajax 没有任何关系 只是关于.dataTable()调用。当数据记录在控制台时,它只是一个长字符串吗?
标签: javascript jquery node.js ajax