【发布时间】:2016-12-04 20:20:33
【问题描述】:
当我使用 angularjs $http.post 向我的 express js 服务器发送发布请求时,我正在开发一个 ionic 应用程序,我看不到 req.body 中的数据。
我在 localhost:3000 上运行我的服务器
我的服务器中用于 CORS 的代码
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Content-Type");
res.header("Access-Control-Allow-Methods", "GET,PUT,DELETE,POST");
next();
});
我的 Angular Js 发布请求
$http.post('http://localhost:3000/signup',{"username":"x","password":"y"}).success(function(res){
console.log(res);
if(res.msg=="success")
{
//do something
}
}
我可以将 req.body 中的数据视为“键”,例如:{'{"username":"x","password":"y"}':''}
当我将离子应用程序的标题设置为:
$http.defaults.headers.post["Content-Type"] = 'application/x-www-form- urlencoded; charset=UTF-8';
请告诉我如何调试
【问题讨论】:
-
您在使用
body-parser吗?如果是,您是否添加了app.use(parser.urlencoded({ extended: true }));? -
@georoot 我的 app.js app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false }));我也尝试了 app.use(bodyParser.urlencoded({ extended: true })) 但得到了相同的响应
-
你的意思是说
req.body在你的情况下是空的?如果是,请检查 ajax 请求并将其发布,这样我们就可以看到参数是如何准确地发布到服务器的 :) -
@georoot 这是我的 ajax 请求的样子
标签: angularjs node.js express ionic-framework