我使用angular $ http。
从cordova应用程序将数据发布到节点应用程序我尝试了几种内容类型'并且只有' application / x-www-form-urlencoded'可以成功发送到节点服务器,所以我的代码就像:
$http({
url: CONSTANTS.login_url,
method: "POST",
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: {"foo": "bar"},
})
但是在节点应用程序中,我从req.body获得的数据是:
{"{"foo":"bar"}":""}
正文的键是一个字符串。
但我的例外结果应该是一个像对象:
{
"foo": "bar",
}
在SO中有一个类似的问题,原因是他使用了“JSON.stringify”#39;在前端。但我不能使用stringify为什么我无法获得例外数据?
答案 0 :(得分:0)
添加trnsformRequest
函数以转换数据以匹配content-type
$http({
url: CONSTANTS.login_url,
method: 'POST',
url: url,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: {"foo": "bar"},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
}
}).success(function () {});
从here
借来的答案希望这会有所帮助。