2011-08-17 10 views
12

Tengo esta línea de código en mi JSP. (Estoy usando puntales 1.3)Método POST que se convierte a GET en IE-9

< html: form action = método de "screening/mine.do" = "post" > . . . </html: formulario>

Cuando se invoca la acción correspondiente a mine.do (utilizando struts-config.xml), la página se envía como GET en lugar de POST. Todos los parámetros de solicitud, incluidos los necesarios, se pierden debido a esto. Este problema solo ocurre en IE-9.

La respuesta se mantiene como POST cuando uso otras versiones de IE o cualquier otro navegador. ¿Cómo hago para que la respuesta permanezca como POST en IE-9?

EDIT: He observado un problema más en esto. Cada vez que la página se procesa en una nueva ventana, este problema ocurre. En otros lugares, el POST funciona bien en IE-9.

Además, este problema ocurre en Win7/IE-8, pero funciona absolutamente bien en XP/IE-8. ¿Hay algo que ver con el sistema operativo también?

Cualquier solución sería útil.

Gracias!

Respuesta

12

Este problema estaba sucediendo debido a una configuración de seguridad en IE en Windows 7. También ocurre en IE-8 de Win-7. (Pero funciona bien en IE-8 de Win-XP)

Existe la opción de habilitar/deshabilitar el modo protegido en IE de Windows-7. Esta es una nueva característica presente en IE de Vista/Windows-7 y esta opción está habilitada por defecto para la zona "Internet" y la zona "Intranet local" (o cualquiera de ellas). Deshabilitar en estos 2 lugares resolvió el problema.

Herramientas -> Opciones de Internet -> Seguridad -> Internet/Intranet local -> Desactive la opción "Habilitar modo protegido".

+2

por el amor de Dios, ¿POR QUÉ están haciendo esto? – IlliakaillI

+0

¡Me alegro de que haya escrito * ambos * la pregunta y la respuesta, ambos para poder encontrarlos y así poder darle un representante para cada uno! Muchas gracias. – shambulator

0

Pruebe esto: method="POST".

La norma establece específicamente que el método puede tener el valor GET | POST (tenga en cuenta las mayúsculas).

+0

He intentado usar POST en mayúsculas. Aún así, la respuesta se está convirtiendo en GET ... También traté de usar GET como solución alternativa. Pero el problema es que, si se pasan muchos parámetros, la URL se vuelve demasiado larga y, por lo tanto, aparece una página de error. – Sri127

0

Hemos notado que hay algunas advertencias de seguridad que detienen el procesamiento para que el usuario lo confirme. Una vez que el uso reconoce la advertencia, el navegador envía una obtención en lugar de una publicación. Esto ha estado sucediendo en IE8, no estoy seguro si todavía sucede en IE9.

+0

Este problema se debe a algunas configuraciones de seguridad en el navegador IE de WIN-7. – Sri127

2

TL; DR: Asegúrese de que los dos sitios estén en la misma zona también. Tenía sitios en dos zonas diferentes y llamando a la zona de pila rompió IE.

Para cualquier persona que tropieza a través de este (como yo), pero descubre que el ajuste de modo protegido no lo resuelve, escribí esto en otro hilo: https://stackoverflow.com/a/12167814/649249

lo resolvió para mí.