javascript - 使用jquery ajax调用nodejs获取json数据

标签 javascript jquery node.js ajax

我正在使用 Nodejs res.end() 以 JSON 格式发送数据,并且我还将 header 设置为 application/json ,但我没有在 jquery ajax 调用的 success 函数中获取数据,而是得到了数据直接采用 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'},
            ]
          });
        }
      });
    });

最佳答案

请尝试此操作,以便我们缩小问题范围:

router.get('/user_list', function (req, res) {
    const list = [
        { id: 0, name: "Alice"},
        { id: 1, name: "Bob"}
    ];
    res.send(list);
});

在您的索引/脚本中:

$(document).ready(function () {
    $.getJSON('user_list').then(res => {
        console.log(res);
    });
});

这应该在控制台中显示数组。

关于javascript - 使用jquery ajax调用nodejs获取json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52532077/

相关文章:

javascript - 脚本无法在 Wordpress 中正确检测 jQuery

javascript Submit() 命令不发送我的帖子数据

node.js - 如何从 Python 调用 Node.js 包

javascript - 如何获取 jquery ajax 状态码

javascript - 使用 Javascript 设置样式时防止样式继承 'display'

javascript - 如何在AJAX成功函数中获取json数据

JavaScript - Node.js 错误 : Can't set headers after they are sent

javascript - 在现有元素之上附加 SVG 项目

javascript - 分页 Javascript 数组

javascript - 没有 v8-profiler 的 Node.js 内存泄漏搜索