jquery客户端没有得到节点js服务器响应

时间:2018-01-05 20:34:47

标签: jquery mysql node.js

我可以向节点服务器发送请求,但我无法获得响应。 问题出在哪儿? 请帮帮我!

我在服务器端(节点js)有这个:

const express = require('express')
var myParser = require("body-parser");

const app = express() 
app.use(myParser.urlencoded({extended : false}));
app.use(myParser.json());

app.listen(3398, () => console.log('ASK app listening on port 3398!'));

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "admin2",
  password: "password",
  database: "ask_test",
  port: 3306
});

app.post('/selectall', (req, res) =>
    con.query("SELECT * FROM "+req.body.table, function (err, result, fields) {
        if (err) throw err;
        console.log("sending: ");
        console.log(result);
        res.send(result);
    })
);

这在客户端:

$("#sendticket_button").click(function(){

    $.post("http://151.1.140.232:3398/selectall",
        {table: "test1"},
        function(data){
            alert('done');
            $("#sendticket_button").html(data);
            }
    );

}); 

如果我点击“sendticket_button”按钮,我会在服务器控制台上获得数据库字段的预期输出

ASK app listening on port 3398!
sending:
[ RowDataPacket { id: 2, nome: 'massi', cognome: 'matt', eta: 32 },
  RowDataPacket { id: 3, nome: 'car', cognome: 'petr', eta: 23 } ]

但我无法在我的客户端获得任何回复警报弹出窗口。我尝试了一切。

谢谢

1 个答案:

答案 0 :(得分:0)

这是一个CORS问题。 这个,添加到服务器端,修复了问题:

app.use(function(req,res,next){
    res.header("Access-Control-Allow-Origin","*");
    next();
});