Requisitos:
el dominio A tiene la página a.html, que contiene un iframe que contiene la página b.html del dominio B. Ahora necesitamos pasar el valor de un cuadro de texto en la página a.html a b.html a través de un botón en a.html El cuadro de texto de la página.
Nota: b.html aquí es una página web html y no puede recibir valores publicados desde otros sitios web, por lo que no puede utilizar el método de publicación directa para pasar valores. Sin embargo, si la página receptora es b.aspx o b.asp, puede hacerlo. ¿Ya no puedo publicar directamente? La respuesta es sí, de hecho es posible, pero b.asp o b.aspx deben actualizarse. ¿Cómo podemos cambiar dinámicamente los elementos o valores de la página receptora sin actualizar? (Los proyectos locales de IE pueden lograr acceso entre dominios, pero el acceso entre dominios desde la red externa está denegado de forma predeterminada. Los proyectos locales de Firefox y el acceso entre dominios desde la red externa están denegados).
Principio:
el navegador prohíbe el acceso entre dominios Acceso a datos, pero el navegador no prohíbe la transferencia de valor de publicación entre dominios y marcos. Podemos publicar en el dominio A en el marco de una página en el dominio B y luego usar la página del marco del dominio B para lograr el acceso a datos en este dominio. En realidad, esto es un pequeño truco en las aplicaciones HTML y logra el envío de datos entre dominios sin utilizar otros conocimientos avanzados.
Método:
agregue dos páginas en el dominio B para lograr el acceso a datos entre dominios, post.aspx y main.aspx.
La relación de la página es la siguiente. a.html en el dominio A contiene un marco. La dirección de la página del marco es main.aspx en el dominio B. main.aspx es un conjunto de marcos que contiene dos marcos, (frmMain)b.html y (frmPost)post. .aspx
.html del dominio A:
http://www.b**.com/main.aspx"> >
Principal del dominio B .aspx:
Primero guardamos los datos que se pasarán al dominio B en el formato a.html y luego los publicamos en post.aspx en el dominio B.
En este momento, post.aspx recibe el valor y luego ejecuta el marco principal en este dominio. para acceder a b.html.
string cmd = Request.Form["cmd"]
if (null != cmd && string.Empty != cmd)
{
Response.Write("
}
No es difícil encontrar ese salto Aquí se utilizan marcos (es decir, se salta una capa de marco en el medio) para lograr el acceso a datos entre dominios. Es decir, publicar en el subtrama del marco.
Posdata:
este ejemplo es solo una solución para el acceso entre dominios en algunas circunstancias especiales, que pueden resultarle útiles. Debido a que el método es simple, su aplicación tiene muchas limitaciones. (Sin embargo, creo que esto es muy similar a ajax. La página no se actualiza y el procesamiento de datos del lado del servidor también se completa ^o^).
Materiales de texto web relacionados:
Solución de acceso entre dominios para aplicaciones web.
Los amigos que han desarrollado Ajax en varios sitios web saben que si estamos en el sitio web A, queremos usar Ajax para obtener contenido específico en el sitio web B, si el sitio web A y el sitio web B. no está en el mismo dominio, por lo que surgen problemas de acceso entre dominios. El problema de acceso entre dominios de Ajax es un problema común que encuentran los desarrolladores de Ajax existentes.
IE maneja el acceso entre dominios mostrando un cuadro de advertencia para recordárselo al usuario. Si el usuario incluye el sitio web como un sitio web de confianza o reduce el nivel de seguridad, IE no le recordará este problema.
Cuando Firefox y otros navegadores que no son de Microsoft encuentran acceso entre dominios, la solución es denegar el acceso.
Algunas personas dicen que IE es un navegador convencional, siempre que se pueda utilizar con normalidad. Esta es una mala declaración. Aunque IE puede manejarlo, existen requisitos previos: o el usuario se toma la molestia de hacer clic en Sí después de que aparece el cuadro de advertencia en la página (al hacer clic en No no se ejecutará la llamada Ajax), o el usuario incluye el. sitio web como un sitio confiable. Estos dos enfoques son relativamente comunes en las aplicaciones de sistemas de gestión empresarial, porque los administradores del sistema pueden utilizar medios administrativos para garantizar el comportamiento del usuario. Pero para el desarrollo de sitios web o portales en Internet, este enfoque no funciona.
Encontré este problema recientemente. Necesitaba hacer que aparecieran algunos efectos especiales en la ventana principal después del acceso entre dominios. Busqué información y encontré varias soluciones viables mediante intentos constantes y pruebas de compatibilidad en diferentes navegadores:
1. Método de proxy web. . Es decir, las solicitudes de acceso entre dominios al sitio web B generadas cuando el usuario visita el sitio web A se envían a la página designada del sitio web A, y la página completa la interacción en lugar de la página del usuario, devolviendo así los resultados apropiados. Esta solución puede resolver la mayoría de los problemas de acceso entre dominios que se pueden imaginar en esta etapa, pero requiere que el sitio web A proporcione soporte de proxy web. Por lo tanto, el sitio web A y el sitio web B deben cooperar estrechamente, y en cada proceso de interacción, el servidor. del sitio web A La carga aumenta y el estado de la sesión no se puede guardar en nombre del usuario.
2. Método bajo demanda. El portal de MYMSN utiliza este método, pero MYMSN no implica problemas de acceso entre dominios. Controle dinámicamente la generación de etiquetas de secuencia de comandos y complete la llamada a páginas entre dominios modificando el atributo src de la etiqueta de secuencia de comandos. El defecto de esta solución es que el atributo src del script utiliza el método get para completar la llamada. Si la cadena pasada durante la solicitud es demasiado grande, es posible que no se ejecute correctamente. Sin embargo, esta solución es muy adecuada para portales de agregación.
3. método de marco flotante. Revisé una publicación sobre el acceso entre dominios al despertar en javaeye. Mencionó que había resuelto el problema del acceso entre dominios usando iframe. De hecho, es posible utilizar iframe para el envío y la adquisición de datos, pero dado que la ventana principal y la ventana secundaria no pueden interactuar (en el caso de acceso entre dominios, esta interacción se rechaza), el efecto en la ventana principal no se puede completar.
(Encontré este artículo, agregue la dirección: http://www.javaeye.com/topic/15641 )
4. Método de volcado local del usuario: el propio IE se basa en las características de la plataforma Windows para proporcionarnos un iframe basado en La solución de usar la memoria para "evitar" es que los datos se pueden transmitir entre dos ventanas a través del portapapeles de Windows en el cliente. Solo necesita configurar el Intervalo en el lado que recibe los datos para el sondeo y borrar el Intervalo después de obtenerlos. resultado. . La independencia de la plataforma de FF determina que no admite el método del portapapeles y la vulnerabilidad del complemento en versiones anteriores de FF se ha solucionado, por lo que FF no puede completar el cruce secreto a través de la memoria. Dado que FF no brinda soporte para operaciones de archivos (la transferencia de datos entre dominios no se puede completar mediante cookies), este método técnico solo se puede utilizar en IE.
5. Mi propio método para resolver este tipo de problema: combinando los métodos anteriores, al visitar el sitio web A, primero solicite al sitio web B que complete el procesamiento de datos y luego obtenga los resultados requeridos según la identificación devuelta. Las deficiencias de este método también son obvias. La carga del sitio web B aumenta. La ventaja es que la sesión también se mantiene y se mejora la capacidad de interacción entre las páginas del sitio web A y el sitio web B. Lo más importante es que esta solución satisface todas mis necesidades.
En resumen, entre las opciones anteriores, la que más recomiendo es el método bajo demanda. Este método puede resolver la mayoría de sus problemas sin enviar una gran cantidad de datos.
Dirección de la solución de acceso entre dominios para aplicaciones web: http://www.newbooks.com.cn/info/37166.html
http://www.cnblogs.com/lgamoy/archive/2006/11/23/569633.html