ऐसा लगता है कि window.postMessage के बिंदु विभिन्न डोमेन पर होस्ट किए गए विंडोज़ / फ़्रेम के बीच सुरक्षित संचार की अनुमति देने के लिए है, लेकिन यह वास्तव में क्रोम में अनुमति नहीं देता है।
यहाँ परिदृश्य है:
- डोमेन ए पर एक पृष्ठ में एक <iframe> (
src
डोमेन बी * के साथ ) एम्बेड करें - <Iframe> का अंत अधिकतर <script> टैग होता है, जिसके अंत में निष्पादन होता है ...
- मैं window.postMessage ( some_data , page_on_A ) कहता हूं
डोमेन बी के संदर्भ में <iframe> सबसे निश्चित रूप से है, और मैंने पुष्टि की है कि उस में एम्बेडेड जावास्क्रिप्ट <<iframe> ठीक से निष्पादित होता है और postMessage
सही मानों के साथ कॉल करता है ।
मुझे क्रोम में यह त्रुटि संदेश मिला:
A को संदेश पोस्ट करने में असमर्थ । प्राप्तकर्ता मूल B है ।
यहाँ वह कोड है जो A पर पेज में एक संदेश ईवेंट श्रोता को पंजीकृत करता है:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
मैंने कॉल करने की भी कोशिश की है window.postMessage(some_data, '*')
, लेकिन यह सब त्रुटि को दबा देता है।
क्या मैं सिर्फ इस बिंदु को याद कर रहा हूं, क्या window.postMessage (...) इसके लिए नहीं है? या मैं सिर्फ यह बहुत गलत कर रहा हूँ?
* माइम-टाइप टेक्स्ट / html, जो उसे रहना चाहिए।