Javascript 如何计算邮寄对象的长度

Javascript 如何计算邮寄对象的长度,javascript,jquery,ajax,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":"ap

我有一件像这样的东西

{
    "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,
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);
  }
});
我尝试使用字符串化JSON,但长度不正确
尝试:JSON.stringifydata.length

您正在正确计算长度,因此在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,
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);
  }
});
您应该使用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. 

你说的不正确是什么意思?你说的物体的长度是什么意思?键/值对的数量?请说得更准确些。JSON.stringifydata.length将为您提供对象字符串中的字符数为什么要将JSON.stringify放在application/atom+xml附近?!如果您查看网络检查器,您将看到内容长度标题被自动添加;jQuery使用application/x-www-form-urlencoded发送对象,您使用JSON表示确定长度,并且头表示您正在发送XML。。。非常混乱。永远不会给您正确的数据长度。您可以自己尝试。Stringify添加了额外的/以使对象成为stringno只需记录并计算每个字符:console.logJSON.stringifydata;//这里没有/将在那里