从Express服务器上的AJAX发送数据

时间:2016-12-08 19:56:50

标签: javascript ajax express

下面的代码是使用AJAX请求在我的快速服务器上发送数据。我需要在发送后访问该数据,在我的快速服务器上进行一些操作。我该怎么做呢?

Express Server代码段:

app.get("/time",function(req,res){
    client.messages.create({ 
        to: "+1" + req.data.number, 
        from: '+166**', 
        body: "This is the ship that made the Kessel Run in fourteen parsecs?", 
        mediaUrl: "https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg",  
    });
});

Ajax请求:

$.ajax({url: "/time",
    data : { name : 'Justin', number : '662***' }
});

2 个答案:

答案 0 :(得分:1)

如果您在谈论服务器中的GET变量:

app.get("/time",function(req,res){
    client.messages.create({ 
        to: "+1" + req.params.number,  // should be `req.params` instead
        from: '+166**', 
        body: "This is the ship that made the Kessel Run in fourteen parsecs?", 
        mediaUrl: "https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg",  
    });
    console.log(req.params.name)
    console.log(req.params.number)
});

如果您说的是服务器的响应,那么:

$.ajax({
    url: "/time",
    data : { name : 'Justin', number : '662***' }
}).done(function (response) {
    console.log(response)
});

我已经读过这个问题3次了,但仍然无法弄清问题是什么,对不起。

答案 1 :(得分:0)

如果您尝试将数据发送到Express,您可能应该在Ajax调用中使用“POST”方法执行此操作。然后,拥有一条与你所拥有的路线相同的路线,但app.post。您还应该在“发布”路径之前使用"body-parser"中间件。

所以,你应该在你的服务器上有这样的东西(就我所说的而言):

const bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/time', (req, res) => {
 console.log(req.body); // your data here

})

在你的Ajax调用中,只需添加一个'post'方法。

@joaumg所说的关于req.params的内容也是正确的,但是POST对我来说似乎更正确。您的数据将更安全。