Вытащено из http://blog.vjeux.com/2011/javascript/cyclic-object-detection.html . Одна строка добавлена для определения того, где находится цикл. Вставьте это в инструменты Chrome dev:
function isCyclic (obj) {
var seenObjects = [];
function detect (obj) {
if (obj && typeof obj === 'object') {
if (seenObjects.indexOf(obj) !== -1) {
return true;
}
seenObjects.push(obj);
for (var key in obj) {
if (obj.hasOwnProperty(key) && detect(obj[key])) {
console.log(obj, 'cycle at ' + key);
return true;
}
}
}
return false;
}
return detect(obj);
}
Вот тест:
> a = {}
> b = {}
> a.b = b; b.a = a;
> isCyclic(a)
Object {a: Object}
"cycle at a"
Object {b: Object}
"cycle at b"
true
Я нахожу ошибку в своем коде. Это была просто ошибка по поводу URL сервера в моем конфигурационном файле. Но мне интересно, почему он выдает ошибку, связанную с Access-Control-Allow-Origin!