Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    response.redirect su ie7

    Ho un problema.
    In alcune pagine asp, utilizzo il comando response.redirect verso altre
    apgine dello stesso sito web.
    Spesso mi trovo a dover utilizzare questo comando dopo aver scritto
    parte del codice HTML della pagina (so che non andrebbe fatto, ma il
    progetto è vecchio, e troppo grande da riscrivere completamente).

    Nel caso in cui il redirect avvenga dopo al parziale scrittura del
    codice HTML, alcuni utenti che usano IE7 ricevono u messaggio di questo
    tipo:
    codice:
    Internet Explorer: impossibile visualizzare la pagina Web
    Cause più probabili:
    - Nessuna connessione a Internet.
    - Si sono verificati problemi relativi al sito Web.
    - è possibile che nell'indirizzo sia presente un errore di
    digitazione.
    L'errore a differenza di explorer 6 e precedenti (oltre che FF, N, opera etc...) non
    è spiegato in dettaglio: ho anche disabilitato "mostra meggaggi di
    errore HTTP brevi" e cose del genere dal menu "avanzate".

    Sapete come ovviare ?
    L'unica cosa che devo evitare, ma che sicuramente risolverebbe
    l'errore, è l'abbassamento del livello di protezione da parte
    dell'utente: sono certo che IE7 consideri un redirect di questo tipo
    come un tentativo di phishing...

    Grazie a tutti.
    Francesco D'Aguanno
    daguanno.it

  2. #2
    Odio fare gli UP UP UP dei posti ignorati: 17 letture e 0 risposte dovrebbero parlar chiaro !
    Però sono testardo e quindi ci riprovo...
    Se nessuno risponde, abbandono...

    Con la scusa estendo il discorso con un esempio, banale, di quello che fa ora il programma:

    codice:
    <%
    Dim i, sUrl_TMP
    %>
    <html>
         <head>
              <title>TEST</title>
         </head>
         <body>
    <%
    i = 0
    For Each oChild in oParent
         sUrl_TMP = oChild.url
    %>
              <% = oChild.label %> 
    
    <%
         i = i + 1
    Next
    %>
         </body>
    </html>
    <%
    If i = 1 Then
         Response.Redirect sUrl_TMP
    End If
    %>
    Se i=1, è inutile mostrare il link, essendo quella l'unica possibilità; è meglio fare un redirect automatico.

    Purtroppo, credo che il problema sia un bug di IE7; qualcosa di simile si verificava su anche utilizzando IE6 su PC con Windows XP Service Pack 2. Poi è stato corretto !
    [b]Messaggio di errore quando si visualizza una pagina ASP che utilizza il metodo Response.Redirect etc.

    Però non posso aspettare che Microsoft corregga il baco, ma soprattutto non posso avere la certezza (né la pretesa) che l'utente abbia il S/O aggiornato all'ultima patch.
    Quindi con buona probabilità userò un redirect lato client del tipo:

    codice:
    <html>
         <head>
              <script>document.location.replace('xxx.asp')</script>
         </head>
         <body>
              ...
         </body>
    </html>

    Se però avete consigli migliori, non vergognatevi... Attendo vostre notizie !
    Francesco D'Aguanno
    daguanno.it

  3. #3
    Ok ho riprodotto l'errore su ie7.
    Create queste due pagine e vedrete:

    codice:
    default.asp
    <%
        Const n = 5
    
        If len(Session("i")) < n Then
            Response.Redirect "seconda.asp"
        End If
    %>
        <HTML>
            <HEAD>
                <TITLE>Test "Response.Redirect" su "Internet Explorer 7"</TITLE>
            </HEAD>
            <BODY>
                <% = Session("i") %>
            </BODY>
        </HTML>
    codice:
    seconda.asp
    <%
        Session("i") = Session("i") & "X"
        Response.Redirect "Default.asp"
    %>
    Con n = 4 non dà errori, mentre con n = 5 sì !
    Francesco D'Aguanno
    daguanno.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.