Navigator オブジェクトのシリアル化中に RangeError が発生します。
その理由は何ですか?
JSON.stringify(navigator);
RangeError: Maximum call stack size exceeded
ブラウザ: クロム
Navigator オブジェクトのシリアル化中に RangeError が発生します。
その理由は何ですか?
JSON.stringify(navigator);
RangeError: Maximum call stack size exceeded
ブラウザ: クロム
これは、エラー メッセージにあるように、navigator
オブジェクトが大きすぎるためです。
次のように、 dystroy の変更された JSON 関数を使用できます。
var navJSON = JSON.pruned(navigator);
返されるオブジェクトはかなり巨大ですが、完全に正しいとは限りません。navigator
JSON を使用してオブジェクトに関するデータを転送する場合は、オブジェクト全体ではなく、それらのプロパティのみを送信する必要があります。
興味のある特定の値を新しいオブジェクトにコピーして、代わりにそれをシリアル化しないのはなぜですか?
おそらく、無限ループにつながるプロパティを見つけることです。
ナビゲーターオブジェクトにセルフリンクが含まれている可能性があります。ナビゲーターを他のオブジェクトにコピーし、それらの大きなリンクを削除する必要があります。