我的 js 函数可以从表单中获取数据
var dataUpload={};
dataUpload.p1=$('#p1').combodate('getValue'); //date
dataUpload.p2=$('#p2').combodate('getValue');//date
dataUpload.p3=$('#p3').val(); //textarea
dataUpload.p4=$('#p4').val(); //text input
dataUpload.p5=Date.now(); //date
dataUpload.p6=1; //number
dataUpload.id=Id; //number
$http.post("url of your route",data).success(function (data)
{
console.log("success");
});
第一次出现“将循环结构转换为json”错误,第二次插入数据没有问题。 我无法理解它的问题:为什么会这样?
最佳答案
我找到了解决方案:
普通的$http post或每个http方法函数,使用所选方法以json格式发送数据。
AngularJs 在发送数据时应用 toJson() 函数。
如果数据的一部分包含 json 无法转换的对象,则会引发“在 angularjs 中将循环结构转换为 json” 错误。
如果您第二次发送它,Angularjs 尝试评估该对象并且成功,那么就会执行查询。
Date.now()
dataUpload.p2=$('#p2').combodate('getValue');//date xeditable
它们都可以返回一个对象。 因此,如果您遇到此错误,请检查您发送的数据的每个值,它们可能不是您认为应该的值(我希望有字符串,它会返回一个对象)。 您可以通过 console.log 了解您的数据是否是对象:
console.log(data1); //output : Object obj IS AN OBJECT
console.log(data2); //output : "Answer about it" IT'S NOT AN OBJECT
如果输出类似于 data1 那么您必须使用 moment(date).format("YYYY"等方法将数据格式化为您想要的形式-MM-DD hh:mm:ss")
或使用其他库
关于javascript - 在angularjs中将循环结构转换为json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41123439/