Uncaught DOMException: Не удалось выполнить 'postMessage' в 'Window': объект не может быть клонирован

Я пытаюсь позвонить

parent.postMessage(obj, 'whatever');

из iframe, и я получаю эту ошибку: Uncaught DOMException: Failed to execute 'postMessage' on 'Window': An object could not be cloned.

Ответ 1

Оказывается, у объекта, который я передал, были методы, поэтому сообщение об ошибке указано An object could not be cloned.

Чтобы исправить это, вы можете сделать следующее:

obj = JSON.parse(JSON.stringify(obj));
parent.postMessage(obj, 'whatever');

Ответ 2

В моем случае, я не знаю, является ли это той же проблемой, я видел эту ошибку в responseJS:

DOMException: не удалось выполнить 'postMessage' для 'DedicatedWorkerGlobalScope': TypeError: не удалось получить, не удалось клонировать.

Я не знаю, в чем проблема, потому что кодовая база действительно большая, тогда я просто очищаю кеш, все работает.