为什么json字符串进入http post请求而不是angularjs中的javascript对象
我正在使用angularjs中的post请求发送一些数据 像 数据图像: 在浏览器中显示结果: 类似于我在jQuery中所做的,其结果是 在angularJs的情况下,数据看起来像是JSON映射,在后端服务器上,我无法从请求体读取数据 它可能是为什么json字符串进入http post请求而不是angularjs中的javascript对象,javascript,angularjs,json,Javascript,Angularjs,Json,我正在使用angularjs中的post请求发送一些数据 像 数据图像: 在浏览器中显示结果: 类似于我在jQuery中所做的,其结果是 在angularJs的情况下,数据看起来像是JSON映射,在后端服务器上,我无法从请求体读取数据 它可能是 但是我仍然无法修复我的问题信息,有人能告诉我我缺少了什么吗。jQuery不是以JavaScript对象的形式发送请求,而是以表单(如querystring)编码字符串的形式发送请求。您的开发工具只是将其解码并像对象一样显示 它实际上看起来像: ap
但是我仍然无法修复我的问题信息,有人能告诉我我缺少了什么吗。jQuery不是以JavaScript对象的形式发送请求,而是以表单(如querystring)编码字符串的形式发送请求。您的开发工具只是将其解码并像对象一样显示 它实际上看起来像:
appId=passThrough&serviceID=OFFOFF&APIVersion=1.0...
这是传统HTML表单的标准格式
可以想象,这对嵌套对象不起作用
var requestData = {
planet: 'Earth',
moons: [
{
name: 'luna'
}
]
}
表单查询字符串编码这样的对象会有问题。这就是现代Http客户机实现默认使用JSON的原因
如果你真的想用的话。用这个
$http({
method: 'POST',
url: url,
data: {
data : inputParams
},
headers: headers
})
.then(function succes(response) {
successCallBack(response.data);
}
在服务器端,使用req.body.data对输入参数进行操作这只是浏览器选择可视化数据方式的不同。即使使用jQuery,您也不会发送一个可以用三角形展开的对象;您发送的是相同的JSON,只有浏览器的调试器工具解析JSON并允许您方便地检查它。这当然是一个有道理的问题,问为什么会这样。也许jQuery正在发送一个将数据标识为JSON的
内容类型
头,而Angular不是吗?首先单击查看源代码
按钮,查看正在发送的实际数据…@deceze view soucre:{“appID”:“passThrough”,“serviceID”:“ONON”,“serviceType”:“plainxmlserviceConnector”,“APIVersion”:“1.0”}还有一件事,我使用相同的浏览器和相同的设置来查看数据,这不是查看数据,而是将数据发送到backend@Martin谢谢..:)查看源代码
在这两种情况下都会给出这样的结果吗?
$http({
method: 'POST',
url: url,
data: {
data : inputParams
},
headers: headers
})
.then(function succes(response) {
successCallBack(response.data);
}