Tengo que publicar el objeto JSON como datos usando el método JavaScript PostMessage, a continuación se muestra el objeto que me gustaría publicar:
{ "Type" : "Login" }Creo que este método se usa entre iframe implementado dentro de un sitio web, la URL de origen del iframe es diferente de la ventana principal, ¿cómo lo implemento en el código?
Tengo este código de muestra que usé, pero no entiendo cómo funciona y cómo puedo probarlo. Agradezco si alguien puede ayudar!!
Código:
@{ string jsonParameter = Newtonsoft.Json.JsonConvert.SerializeObject("Login"); } var jsonData = "@Html.Raw(jsonParameter)"; parent.postMessage({ "Type": jsonData }, "*");Tienes razón, PostMessage se usa para enviar mensajes entre inames. El código que proporcionó en su ejemplo está destinado a ser utilizado en un iframe secundario y está enviando un mensaje al iframe principal.
En el iframe principal, también debe escuchar los mensajes que ingresan, por ejemplo
window.addEventListener("message", (event) => { console.log("Received data from child iframe ", event.data); });Suponiendo que está enviando un mensaje estático, la muestra de código que ha proporcionado que envía un mensaje al iframe principal también se puede simplificar ya que no es necesario el c#
parent.postMessage({ "Type": ""Login }, "*");Tenga en cuenta también que el segundo parámetro de PostMessage debe ser un dominio esperado en lugar de "*", ya que evita que los sitios malintencionados intercepten mensajes. Recomendaría leer la página mdn para obtener más información https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage