为什么在AngularJS中使用HTTP POST请求时要使用JSON字符串而不是JavaScript对象?

36 浏览
0 Comments

为什么在AngularJS中使用HTTP POST请求时要使用JSON字符串而不是JavaScript对象?

这个问题已经在这里有答案了:

如何将数据作为表单数据而不是请求负载发送?

我正在使用angularjs的post请求发送一些数据,就像

$http({
  method: 'POST', 
  url: url, 
  data: inputParams,
  headers: headers
})
.then(function succes(response) {
    successCallBack(response.data);
}

图片数据:

\"enter

浏览器中的结果:

\"Result

类似地,我在jQuery中也有一个结果

\"Result

在angularJs的情况下,似乎数据作为JSON映射进行传输,而在后端服务器上,我无法从请求体中读取它。

这可能是重复的

如何从angular $http post请求获取JSON字符串

但我仍然无法解决我的问题,那里提供的信息,有人告诉我我错过了什么。

admin 更改状态以发布 2023年5月23日
0
0 Comments

使用这个

$http({
      method: 'POST', 
      url: url, 
      data: {
           data : inputParams
      },
      headers: headers
    })
    .then(function succes(response) {
        successCallBack(response.data);
    }

在服务器端使用req.body.data来操作您的输入参数

0
0 Comments

jQuery并不是将请求作为JavaScript对象发送,而是以类似查询字符串的表单编码字符串发送请求。你的开发者工具只是解码并将其显示为对象。

实际上,它看起来像:

appId=passThrough&serviceID=OFFOFF&APIVersion=1.0...

这是传统HTML表单的标准格式。

可以想象,这对于嵌套对象不起作用。

var requestData = {
    planet: 'Earth',
    moons: [
        {
            name: 'luna'
        }
    ]
}

将表单查询字符串编码为这样的对象会变得问题重重。这就是为什么现代Http客户端实现默认使用JSON的原因。

如果你真的想使用表单查询字符串编码,你可以这样做。

0