如何从ajax请求发送节点js中的数据?

时间:2017-05-14 12:28:10

标签: javascript jquery node.js ajax web

我正在尝试从客户端向服务器(节点js)发送数据。我正在使用ajax。

客户:

$("#test_button").on("click",function(){
    //alert("shit");
    $.ajax(
        {url: "http://localhost:4000/ajax_check", 
        async: false, 
        type: "POST",
        data: "{user:balayya,password:hero}",
        success: function(result){
            alert("hooli");
        }});
});

服务器:

var app = require('express')();
var express = require('express');
var http = require('http').Server(app);


http.listen(process.env.PORT || 4000, function() {
    console.log('listening on *:4000');
});

app.use(express.static('publuc'));

app.get('/', function(req, res) {
    console.log("new entry page serving");
    res.sendFile(__dirname + '/main.html');
});

app.post('/ajax_check', function(req, res){
    console.log("someone came in here");
    console.log(req.query.data);
});

console.log()打印为“未定义”。 在节点js

中从客户端接收发布请求及其数据的正确方法是什么

2 个答案:

答案 0 :(得分:1)

使用此npm包 - https://www.npmjs.com/package/body-parser

所以服务器站点解析如下: request.body。{some field name}

答案 1 :(得分:0)

试试这样:

$.ajax({
    url: "http://localhost:4000/ajax_check", 
    type: "POST",
    data: {
        user: "balayya",
        password: "hero"
    },
    success: function(result) {
        alert("hooli");
    }
});

在服务器上使用req.body.param_name读取相应的参数值:

app.post('/ajax_check', function(req, res){
    console.log("someone came in here");
    console.log(req.body.user);
    console.log(req.body.password);
});

另请注意,我已从您的AJAX请求中删除了async: false,因为每当有人将此属性设置为false时,一只可怜的小猫就会死亡。