与对象一起使用时,JSON.stringify() 出现"Circular reference in value argument not supported"错误



我的函数创建一个对象并将其发送到另一个函数:

function Function1(){
var id = '@Html.Raw(Model.ID)';
var amount = '@Html.Raw(Model.Amount)';
var desc = '@Html.Raw(Model.Description)';
var data = { ID: id, Amount: amount, Desc: desc };
Function2(data)
}

Function2 获取该数据并尝试stringify它,然后再发送Ajax请求:

function Function2(data){
var URL = this.element.attr("url") 
var sendData;
if(data != null){      
sendData = JSON.stringify(data);
} 
$.ajax(
{
url: URL,
type: 'post',
dataType: "html",
data: sendData,
contentType: 'application/json; charset=utf-8',
success: function (result) {
var dialog = $("#mainWindow").data("kendoWindow");
$("#dataWin").html(result);
dialog.open();
}
})
}

执行JSON.stringify(data)逻辑时,出现错误:

不支持值参数中的循环引用

为什么会这样,我做错了什么?

检查代码中是否有任何循环引用,如下所示。

var john = new Object();  
var mary = new Object();  
john.sister = mary;  
mary.brother = john;  

// This line causes a runtime error.  
var error = JSON.stringify(john);

参考 : https://learn.microsoft.com/en-us/scripting/javascript/misc/circular-reference-in-value-argument-not-supported

相关内容

最新更新