Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    19

    Problema ajax asp Response.Redirect

    Rieccomi ,dunque ho un form con invio tramite POST che valido tramite ajax;
    la pagina contenente il form si chima "login.asp"
    e la validazione (in asp) è contenuta nella stessa pagina del form.
    Quello che non mi funziona è la chiamata Response.Redirect("riservata.asp").

    Cioè, se la validazione fallisce, viene restituito alla funzione ajax chiamante
    una Response.Write con l'errore, che a sua volta viene restituido tramite
    xmlhttp.responseText ad un id in "login.asp", che viene modificato con il testo responseText.


    Se invece la validazione passa i test, dovrebbe essere eseguita una Response.Redirect("riservata.asp") sempre dalla pagina di login, invece mi da un errore generico di runtime nella funzione js di ajax.
    Ho provato anche una cosa del tipo:
    Response.Write("");
    Response.Redirect("riservata.asp");, ma niente, sempre lo stesso errore.


    Come posso fare? Tenendo conto di rispettare il principio della degradabilità?
    (per cui non potrei fare il redirect da javascript)?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Per mantenere la funzionalità anche senza js attivo devi separare le due operazioni ad esempio cosi:
    <form name="log" id="log" action="?js=off" onsubmit="return false;"> e nel pulsante <input name="accedi" id="accedi" type="submit" onclick="QuiMetiLaTuaChiamataAjax();" class="accedi" value="ACCEDI" />, cosi se js è attivo parte la chiamata ajax e in base ai response mostrerai/reindirizzerai con js, se è disattivato partirà la action e gestirai il tutto con i response.write lato server vedi esempio pratico qui (prova ad accedere con js attivo poi disattivalo)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    19
    io avevo fatto una cosa del genere:
    <form method="post" name="login" action="login.asp" onsubmit="ajax(); return false;" >

    però prima di questo avevo messo tutto il codice asp per la validazione.

    Comunque adesso provo il tuo suggerimento...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    19
    Ho risolto!

    Ecco cosa non andava:

    tra i parametri da passare via POST ad xmlhttp.send bisognava inserire anche
    il bottone di submit, ossia qualcosa del tipo:
    xmlhttp.send("nickname="+nickname+"&password="+pas sword+"&procedi=PROCEDI");
    altrimenti mi dava errore;

    il form ora è :

    <form method="post" name="login" action="login.asp?java=no" onreset="nickname.focus()"

    onsubmit="ajax(); return false;">

    Facendo dei controlli iniziali sul parametro java, ho fatto in modo che tutta la validazione avvenga

    nello stesso file in cui è contenuto il form, e con gli stessi controlli server-side che si avrebbero

    degradando da ajax, proprio come volevo!!

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.