如何计算POST中发送的对象的长度

时间:2014-12-01 11:38:06

标签: javascript jquery ajax

我有像

这样的对象
{
    "Id": 1,
    "Value": 10,
    "UId" : "ab400"
}

如何计算长度,以便我能够在ajax请求中发送它。

 $.ajax({
    url: 'http://gdata.youtube.com/feeds/api/videos/keDZXXDxK1c/ratings',
    type:"POST",
    data: data,
    headers: {
        "Content-Type":"application/atom+xml",
        "Content-Length": data.length,

我尝试使用stringfying JSON,但长度不正确 尝试:JSON.stringify(data).length

2 个答案:

答案 0 :(得分:0)

您正在正确计算长度,因此在ajax请求之前可能会出现语法错误。

var data = {
    "Id": 1,
    "Value": 10,
    "UId" : "ab400"
}

var dataLength = JSON.stringify(data).length;

$.ajax({
  url: 'http://gdata.youtube.com/feeds/api/videos/keDZXXDxK1c/ratings',
  type:"POST",
  data: data,
  headers: {
    "Content-Type":"application/json; charset=utf-8",
    "Content-Length": dataLength
  },
  success: function(data){
    console.log(data);
  },
  error: function(data) {
    console.log(data);
  }
});

答案 1 :(得分:0)

你应该使用 JSON.stringify()来获取完整的字符串,然后应用length属性来获取长度。

    var data = {
            "Id": 1,
            "Value": 10,
            "UId" : "ab400"
        }

        var Length = JSON.stringify(data).length;
         console.log(Length);//33
         console.log(data.length);//undefined, because here data is object not string.