为什么在AngularJS中使用HTTP POST请求时要使用JSON字符串而不是JavaScript对象?
为什么在AngularJS中使用HTTP POST请求时要使用JSON字符串而不是JavaScript对象?
这个问题已经在这里有答案了:
我正在使用angularjs的post请求发送一些数据,就像
$http({ method: 'POST', url: url, data: inputParams, headers: headers }) .then(function succes(response) { successCallBack(response.data); }
图片数据:
浏览器中的结果:
类似地,我在jQuery中也有一个结果
在angularJs的情况下,似乎数据作为JSON映射进行传输,而在后端服务器上,我无法从请求体中读取它。
这可能是重复的
如何从angular $http post请求获取JSON字符串
但我仍然无法解决我的问题,那里提供的信息,有人告诉我我错过了什么。
admin 更改状态以发布 2023年5月23日
jQuery并不是将请求作为JavaScript对象发送,而是以类似查询字符串的表单编码字符串发送请求。你的开发者工具只是解码并将其显示为对象。
实际上,它看起来像:
appId=passThrough&serviceID=OFFOFF&APIVersion=1.0...
这是传统HTML表单的标准格式。
可以想象,这对于嵌套对象不起作用。
var requestData = { planet: 'Earth', moons: [ { name: 'luna' } ] }
将表单查询字符串编码为这样的对象会变得问题重重。这就是为什么现代Http客户端实现默认使用JSON的原因。
如果你真的想使用表单查询字符串编码,你可以这样做。