为什么json字符串进入http post请求而不是angularjs中的javascript对象

为什么json字符串进入http post请求而不是angularjs中的javascript对象,javascript,angularjs,json,Javascript,Angularjs,Json,我正在使用angularjs中的post请求发送一些数据 像 数据图像: 在浏览器中显示结果: 类似于我在jQuery中所做的,其结果是 在angularJs的情况下,数据看起来像是JSON映射,在后端服务器上,我无法从请求体读取数据 它可能是 但是我仍然无法修复我的问题信息,有人能告诉我我缺少了什么吗。jQuery不是以JavaScript对象的形式发送请求,而是以表单(如querystring)编码字符串的形式发送请求。您的开发工具只是将其解码并像对象一样显示 它实际上看起来像: ap

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

数据图像: 在浏览器中显示结果:

类似于我在jQuery中所做的,其结果是

在angularJs的情况下,数据看起来像是JSON映射,在后端服务器上,我无法从请求体读取数据

它可能是


但是我仍然无法修复我的问题信息,有人能告诉我我缺少了什么吗。

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);
    }