2014-02-22 54 views
-1
$('#save').click(function (e) { 
    e.preventDefault(); // preventing default click action 
    $.ajax({ 
     url: '/share', 
     type: 'post', 
     contentType: "json", 
     data: JSON.stringify({ 
      title: $('#title'), 
      body: $('#body'), 
      status: 'Published' 
     }), 
     success: function (data) { 
      console.log(data); 
      $('#{{ form.share_id.name }}').val(data.id); 
     }, 
     error: function (xhr, textStatus, errorThrown) { 
      alert(xhr.responseText); 
     } 
    }); 
}); 

有人能告訴我上面的json stringify如何導致循環引用嗎?json中的循環引用

回答

3

這是因爲你正在嘗試對具有DOM元素引用的對象進行串聯...... DOM元素具有循環引用,因爲元素將引用其子節點和父節點。

我想你可能想要的是具有上述元素的含量#title#body

$('#save').click(function (e) { 
    e.preventDefault(); // preventing default click action 
    $.ajax({ 
     url: '/share', 
     type: 'post', 
     contentType: "json", 
     data: JSON.stringify({ 
      title: $('#title').text(), 
      body: $('#body').text(), 
      status: 'Published' 
     }), 
     success: function (data) { 
      console.log(data); 
      $('#{{ form.share_id.name }}').val(data.id); 
     }, 
     error: function (xhr, textStatus, errorThrown) { 
      alert(xhr.responseText); 
     } 
    }); 
}); 
1

爲了避免而不是發送的是DOM元素的文字圓形參考使用文本()方法

//JSON.stringify({ 
//   title: $('#title'), 
//   body: $('#body'), 
//   status: 'Published' 
//  }), 

JSON.stringify({ 
      title: $('#title').text(), 
      body: $('#body').text(), 
      status: 'Published' 
     }),