如何从Node.js Express中的xhttp.send()检索数据

时间:2019-03-09 21:59:39

标签: javascript node.js ajax

所以我在首页有这一行:

var x = "Hi";
var y = 123;

xhttp.open("POST", "/toNodeServer", true);
  xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

         
  
  xhttp.send(x, y);

在服务器中,我有以下内容:

outer.post('/toNodeServer', function(req, res, next){
 
  var x = req.body


console.log(x);

所以结果是它不发送y值,我是从终端得到的: {'嗨':”}

任何人都可以解释发生了什么以及如何发送这两个变量吗?

1 个答案:

答案 0 :(得分:1)

XMLHttpRequest.send(body) 仅采用 1 参数。

您需要发布JSON或发送经过url编码的字符串(或任何其他序列化的字符串)

JSON

def Remove(duplicate): 
    final_list = [] # make an empty list
    for num in duplicate: # iterate over the given list
        if num not in final_list: # if number is not in the list, push it to the list.
            final_list.append(num) 
    return final_list

x-www-form-urlencoded

xhttp.setRequestHeader("Content-type", "application/json");
xhttp.send(JSON.stringify({ x: x, y: y}));

如果您要发送xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send(`x=${x}&y=${y}`); ,请不要忘记添加:

JSON

然后您将可以通过以下方式访问它:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded());

或使用解构:

const x = req.body.x;
const y = req.body.y;