Node,XMLHttpRequest

时间:2016-03-10 23:04:02

标签: xmlhttprequest

我对Node有点新鲜。我试图简单地触发一个将XHR作为节点路由的函数。在路由中,我只是将一些formData记录到NODE控制台。

api.js

var XMLHttpRequest = require('xhr2');
var uploadApi = {
  uploadFiles: function(files, url, directory){
    var xhr = new XMLHttpRequest();
    var form = new FormData();
    form.append('greeting', 'hello');
    form.append('whyme', {'hello':'hi');
    xhr.open('POST', '/upload' ,true);
   xhr.send(form);
  }
};

module.exports = uploadApi;

节点路由/上传

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.post('/upload', function(req,res){
  console.log(req.body);  //<----comes up empty
});

由于某种原因,req.body没有显示数据。它显示一个空白{}。请帮忙。这就像是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

几乎绝对是你的身体解析器。我未经考验的建议是尝试

app.use(bodyParser.urlencoded({
      extended: false,
      type: 'application/x-www-form-urlencoded'
}));

在您的服务器上,

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

在您的客户端

您可以在此处调查完整的选项: https://github.com/expressjs/body-parser#bodyparserurlencodedoptions