我正在使用angularjs中的post请求发送一些数据 像
$http({
method: 'POST',
url: url,
data: inputParams,
headers: headers
})
.then(function succes(response) {
successCallBack(response.data);
}
我在jQuery中有类似的结果
如果angularJs看起来像数据是JSON映射,那么在Backend服务器上我无法从请求体中读取它。
可能是重复的 how to get json string from angular $http post request
但是我仍然无法修复我的问题信息,有些人可以告诉我我错过了什么。
答案 0 :(得分:1)
jQuery不是将请求作为JavaScript对象发送,而是将其作为表单(如querystring)编码的字符串发送。您的开发人员工具只是解码它并像对象一样显示它。
实际上看起来像是:
appId=passThrough&serviceID=OFFOFF&APIVersion=1.0...
这是传统HTML表单的标准格式。
您可以想象这对嵌套对象不起作用。
var requestData = {
planet: 'Earth',
moons: [
{
name: 'luna'
}
]
}
对此类对象进行编码的表单查询字符串会出现问题。这就是现代Http Client implimentations默认使用JSON的原因。
如果你真的想使用form querystring encoding you can。
答案 1 :(得分:-1)
使用此
$http({
method: 'POST',
url: url,
data: {
data : inputParams
},
headers: headers
})
.then(function succes(response) {
successCallBack(response.data);
}
在服务器端使用req.body.data对inputParams进行操作