vue-resource+express post请求有问题

前端用vue-resource来做http请求,后台用express

现象:我用vue-resource来post一个json对象,后台express接收到的req.body是个空对象(无跨域问题)。

贴代码,前端的请求代码:

this.$http.post('/api/testUser', {username:this.loginForm.username, password:this.loginForm.password})
      .then(res => {
        console.log(res.body);  //这里返回一个空对象{}
      }, err => {
        console.log(err);
      });

后台的处理代码:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
app.use(express.static(__dirname + '/src'));
var urlencodedParser = bodyParser.urlencoded({ extended: false });

app.post('/api/testUser', urlencodedParser, function(req, res){
  var obj = {
    username: req.body.username,
    password: req.body.password
  }
  console.log(obj);    //这里后台打印出来的就是{ username: undefined, password: undefined }
  res.send(JSON.stringify(obj));  //如果是res.send('post')则前端能收到'post'字符串
});

不知道哪里出了问题。。求解决,熬着夜已经几个钟了。。。 T_T

阅读 2.8k
1 个回答

额,,自问自答不好意思,我确实发了问题之后才知道答案。。。post里多加个选项就好了:

this.$http.post('/api/testUser', {username:this.loginForm.username, password:this.loginForm.password}, {emulateJSON:true})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进