问题答案 12026年5月29日 23:13
How do you use window.postMessage across domains?
window.postMessage is a powerful Web API used for securely enabling cross-origin communication between different origins (domains, protocols, or ports). Using postMessage can mitigate traditional cross-origin communication risks and ensure that both the sender and receiver can verify the trustworthiness of the source.Usage StepsSending a Message:First, on the page sending the message (parent page or source page), call the window.postMessage() method. This method accepts two main parameters: the message to send and the target window's origin.Example Code:Receiving a Message:On the target page (child page or receiving page), set up an event listener to handle received messages. This is primarily done by listening for the message event.Example Code:Security ConsiderationsWhen using window.postMessage, several security considerations must be noted:Always verify event.origin: When receiving a message, always verify the event.origin property to ensure it matches the expected sender domain. Do not process messages from unverified sources.Define targetOrigin carefully: When sending messages, ensure targetOrigin is strictly defined to avoid using "*" (which allows any domain to receive messages) unless in very specific cases.In this way, window.postMessage can be safely used for cross-origin communication while ensuring data integrity and security. In practical applications, this method is commonly used for communication between the parent page and embedded iframes or with service workers.