AJAX调用后,BodyParser数据未定义

时间:2016-02-27 00:00:36

标签: node.js express

正文解析器主体是{}。我已经完成了研究并确保我的ajax数据密钥设置正确,并确保中间件也正确设置。这是我的前端ajax电话

$.ajax({ type:"GET", url:"/api", data: {course:"MATH-226"}, success: function(data){ alert(data);} });

这是我的后端server.js文件:

'use strict'
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const alg = require('./app/algorithm.js');
const app = express();
app.use('/', express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

app.get('/api', (req, res) => {
console.log(req.body);
alg.create(req.body.course, answer => res.send(answer));
});
let server = app.listen(3000, () => {
  let host = server.address().address;
  let port = server.address().port;
  console.log('Example app listening at http://%s:%s', host, port);
});

1 个答案:

答案 0 :(得分:0)

您正在使用GET请求,因此可能无法发送。如果您需要发送内容,可以将其作为标题附加或包含在网址的查询字符串中。如果你想发送数据,我会使用POST请求。

查看这篇文章

How to send data in request body with a GET when using jQuery $.ajax()