在POST正文请求

时间:2016-08-22 11:56:12

标签: javascript json ajax post

Javascript新手并有一个基本查询

对于POST AJAX请求,我需要在body参数中以JSON格式发送以下数据,但是经度,纬度和半径值是动态的,即将根据当前位置进行馈送。

{
  "inGeoFence" : {
    "gpsCircle" : {
      "longitude": 122.2620,
      "latitude": 37.4996,
      "radius": 180000
    }
  }
}

写这个的静态方法是

 "data": "{\r\n  \"inGeoFence\" : {\r\n    \"gpsCircle\" : {\r\n      \"longitude\": 77.348235,\r\n      \"latitude\": 28.533938,\r\n      \"radius\": 100\r\n    }\r\n  }\r\n}\r\n"

以上数据工作正常,因为所有都是静态值并且形成了一个字符串。

请您建议我编写相同的JSON,以便提供动态值。还有什么是发送JSON的最佳/正确方法?

由于

1 个答案:

答案 0 :(得分:3)

只需构造JS对象并将其字符串化:

"data": JSON.stringify({
    inGeoFence: {
        gpsCircle: {
            longitude: getLong(),
            latitude: getLat(),
            radius: getRadius()
        }
    }
});

您也可以将data作为JS对象发送,并在服务器端将其作为数组读取:

$.ajax({
     data: {
      inGeoFence: {
        gpsCircle: {
          longitude: $('#long').val(),
          latitude: $('#lat').val(),
          radius: $('#radius').val()
        }
      }
    }
});

[server side, e.g. PHP]
$_POST['inGeoFence']['gpsCircle']['longitude']