Axios发布参数未发送

时间:2019-02-19 18:37:09

标签: javascript node.js express axios

我在React应用中使用Axios来访问api。我正在尝试将登录详细信息发布到服务器,但是当我记录请求的正文时,我得到的只是{}

在此请求:

handleSubmit() {
    let email    = this.state.email
    let password = this.state.password

    request.post("/login",{email: email, password: password}) //just prints {} on the backend
    .then((results)=>console.log(results))
    .catch((err)=>console.log(err))
}  

如果我删除括号并发送了hello之类的字符串作为测试,我会得到{ hello: '' }的帮助,因此很清楚。在此阶段,我已经尝试了所有方法来获取用户的现场输入,但是没有成功。

这里是服务器代码:

var app = express();
var bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({
    extended: true
}));
app.post("/login",(req,res) => {
    console.log(req.body);
})

我的api是使用express.js在端口4000上的节点服务器

1 个答案:

答案 0 :(得分:0)

更新:必须将对象字符串化为查询字符串。您可以将qs package用于此目的。查看更新的代码。

由于您使用的是body-parser的{​​{1}}中间件,因此请求的内容类型需要设置为“ x-www-form-urlencoded”。

bodyParser.urlencoded