Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Response.Redirect su ie7

    ho postato anche su
    Sistemi operativi e software > Windows e software ma forse la domanda era OT (effettivamente è al limite tra i due forum), quindi ho pensato di postarla anche qui.
    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
    non per essere antipatico, ma che stampi a fare html se poi usi un redirect? mica hai tempo di leggere quello che stampi...a meno che non usi il flush.... se hai sto problema, fai questo: usa un javascript che al onLoad della pagina attiva il redirect dopo 2/3 secondi, almeno IE non rompe

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Originariamente inviato da Santino83_02
    non per essere antipatico
    Non sei stato antipatico, effettivaemnte una risposta del genere ci stava

    Ti spiego.
    Il sito è in realtà un applicazione (la trasposizione di un programma in c++ ad uso interno dell'azienda per l'utilizzo di alcune funzioni anche via web)

    Devo scorrere un xml che mostra n link a disposizione dell'utente (in base ad un livello di abilitazione).
    Se le abilitazioni dell'utente permettono l'utilizzo di un solo modulo (link), evito di mostrare il link, faccio il redirect direttamente. Ma se facessi il controllo prima di disegnare il menu, rischierei di fare il ciclo due volte, una per il controllo ed una per il disegno dell'HTML.
    Potrei bufferizzare il codice html e visualizzarlo solo se il numero di link è maggiore di 1, ma a suo tempo (4 ani fa !) non lo feci, anche perché riempire una variabile di tutto quel codice comporta un rallentamento esponenziale (vi prego però non mettetevi a discutere sul buffer o meno, vorrei solo sapere se siete a conoscenza del problema e e se sapete come risolverlo !)

    Questa tecnica la uso in più punti del programma per scopi diversi, ma di certo non mi metto a riscrivere tutto da capo... A meno che non sia l'ultima spiaggia !
    Francesco D'Aguanno
    daguanno.it

  4. #4
    quindi immagino che tu non possa "interrompere" la stampa dove in teoria c'è il redirect e poi usare un redirect in javascript no?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Originariamente inviato da Santino83_02
    quindi immagino che tu non possa "interrompere" la stampa dove in teoria c'è il redirect e poi usare un redirect in javascript no?
    Ti faccio 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à ! Preferisco 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 !
    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>
    Grazie
    Francesco D'Aguanno
    daguanno.it

  6. #6
    Con il post precedente non volevo dire che avevo risolto
    Volevo solo dire che se non trovo una soluzione mi accontento di quella PEZZA

    Qualcuno sa come aiutarmi ?
    Francesco D'Aguanno
    daguanno.it

  7. #7
    fai prima il controllo se è 1 o piu...se è uno fai il redirect altrimenti stampi a video
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Originariamente inviato da Santino83_02
    fai prima il controllo se è 1 o piu...se è uno fai il redirect altrimenti stampi a video
    Volevo evitare di scorrere due volte la collezione, ma volevo anche evitare di mettere tutto l'HTML in un buffer da stampare successivamente nel caso i > 1.
    Mettendo mano al codice il problema lo risolvo di sicuro, ma volevo evitare di agire pesantemente sul codice...

    Cmq Grazie, sei l'unico che mi sta dando retta
    Francesco D'Aguanno
    daguanno.it

  9. #9
    Originariamente inviato da daguanno
    Volevo evitare di scorrere due volte la collezione, ma volevo anche evitare di mettere tutto l'HTML in un buffer da stampare successivamente nel caso i > 1.
    Mettendo mano al codice il problema lo risolvo di sicuro, ma volevo evitare di agire pesantemente sul codice...

    Cmq Grazie, sei l'unico che mi sta dando retta

    scusa, lavori con un'array? che è un oggetto creato da te? non hai modo di sapere, senza scorrere, da quanti elementi è composto?


    altrimenti potresti provare, ma credo sia peggio, invece di usare il response.redirect di asp di mettere uno script javascript che faccia il redirect

    codice:
    <script language="javascript">
    document.location.href="('nuova_pagina.asp')";
    </script>
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    Ok ho riprodotto l'errore !
    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.