Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614

    risposta dalla pagina processata

    codice:
       $('form#log').submit(function(){
        var user = $("#user").val();
        var pass = $("#pass").val();
        $.ajax({
            url: 'process.asp',
            type: 'GET',
            data: "Usera=" + user + "&Passa=" + pass,
            dataType: 'html',
            success: function(risposta){
                 if (risposta == 'ok' )  {
    
      window.location = "index.asp";
                 
                }else{
                     
        $('#results').show();
            }
     }
    
        });
        return false;
    });
    la pagina process.asp rilascia come testo o ok o errore, come posso recuperare il valore e usarlo nella condizione in grassetto?
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da djjunior Visualizza il messaggio
    la pagina process.asp rilascia come testo o ok o errore, come posso recuperare il valore e usarlo nella condizione in grassetto?
    Qual è il Content-Type della risposta della pagina?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    La pagina process.asp non ha content-type o altri tag ma solo codice asp
    ma anche aggiungendo tutti i tag di una pagina web, e messo come content-type
    content="text/html; charset=windows-1252"
    ho lo stesso problema
    grazie
    Ultima modifica di djjunior; 23-09-2021 a 17:39

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da djjunior Visualizza il messaggio
    La pagina process.asp non ha content-type o altri tag ma solo codice asp
    Il codice ASP è quello che produce il contenuto da restituire, ma deve (o dovrebbe) esserci anche una impostazione del Content-Type, ossia di quell'intestazione da aggiungere alla risposta che segnala il formato delle informazioni che si stanno restituendo.

    Se si tratta di un testo tipo "ok" oppure "errore", allora dovrebbe essere qualcosa tipo text/plain, per indicare che la risposta è semplice testo (e non una pagina HTML completa, un'immagine o qualcosa d'altro).

    Quote Originariamente inviata da djjunior Visualizza il messaggio
    ma anche aggiungendo tutti i tag di una pagina web, e messo come content-type
    content="text/html; charset=windows-1252"
    ho lo stesso problema
    Certo, perché in quel caso stai aggiungendo elementi che non ti servono e che dovrai necessariamente interpretare, da cui la mia domanda originale: la tua pagina restituisce solo "ok", oppure restituisce un markup HTML con dentro la struttura tipica di una pagina che, al suo interno, da qualche parte, contiene la stringa "ok"?

    Nella chiamata AJAX occorre specificare il formato dei dati atteso e fare sì che il server risponda con quel formato e non aggiunga nulla che non sia necessario, mentre se ci sono elementi in più, allora l'informazione da elaborare va estrapolata da questa struttura.

    Fai anche un log sulla Console del valore che ti viene restituito nel parametro risposta (es. console.log(risposta);), prima di gestirlo, così puoi visualizzare quello che c'è all'interno; inoltre, aiutati con i tool di sviluppo (tasto F12) per monitorare la risposta del server e l'effettivo contenuto.

    Senza ulteriori informazioni, direi che non ci sono molte altre alternative, a parte tentare di indovinare.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    più semplice di quanto credi ma la tua pagina "process.asp" non deve produrre nulla su video ma deve solo fare il lavoro di caricare una variabile che avrà il contenuto da tornare alla tua funzione jQuery con chiamata Ajax

    Quindi facciamo un esempio di file "process.asp"
    codice:
    <%
    User=request.querystring("Usera")
    Password=request.querystring("Passa")
    VarRisp="Errore"
    
    ' qui ci saranno le tue gestioni e controlli
    if ConfrontoU=User and ConfrontoP=Password then
       VarRisp="OK"
    else
       VarRisp="Dati Errati"
    end if
    
    
    ' qui fai stampare su video tutto ciò che la tua chiamata Ajax deve intercettare
    response.write(VarRisp)
    %>
    come vedi nella pagina asp non c'è nessuna espressione html
    Ultima modifica di SoloWiFi; 24-09-2021 a 09:21

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    Grazie SOLOWIFI,
    quindi la chiamata ajax sarà cosi?
    codice:
     $('form#log').submit(function(){
        var user = $("#user").val();
        var pass = $("#pass").val();
        $.ajax({
            url: 'process.asp',
            type: 'GET',
            data: "Usera=" + user + "&Passa=" + pass,
            dataType: 'html',
            success: function(VarRisp){
                 if (VarRisp == 'OK' )  {
    
      window.location = "index.asp";
                 
                }else{
                     
        $('#results').show();
            }
     }
    
        });
        return false;
    });
    Perchè così provando, l'ok l'intercetta come prima ma visualizzo sempre l'errore cioè la funzione elabora: $('#results').show();
    Grazie

  7. #7
    Perchè ci si deve sempre intestardire sulle situazioni più strane e complesse?
    Lascia perdere jQuery e lavora in puro JS.
    Poi, una volta capiti i meccanismi, puoi sbizzarrirti in jQuery

    Ecco una semplice funzione di chiamata Ajax in puro JS
    codice:
    /* chiamata sincrona/asincrona con recupero testo */
    var GestAs = new XMLHttpRequest();     
    
    var Link="process.asp"
    var Parametri="?Usera=" + user + "&Passa=" + pass;
    GestAs.open("GET",Link+Parametri, true); /* true-asincrona, false-sincrona */
    GestAs.send();
        
    GestAs.onreadystatechange = function() {   
        if(this.readyState == 4) {
            var Ritorna=this.responseText;
            GestAs=null;
    
            if (Ritorna == 'OK' ) {
                window.location = "index.asp";            
            } else {
                alert("ERRORE " + Ritorna);
            }
        } 
    }
    ricorda che se è asincrona non avrai immediatamente il risultato
    Ultima modifica di SoloWiFi; 24-09-2021 a 10:29

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    Premetto che forse non l'ho specificato prima, ma uso l'ajax da un form popup modal bootstrap, ora usando l'asincrona non va, mentre usando la sincrona, chiude la finestra pop-up ma passa i dati anche nella barra della pagina principale e qualora la risposta fosse negativa (cioè user e pass inesistenti) chiude sempre finestra pop-up e ricarica la pagina principale, cosa che dovrebbe fare da condizione solo in caso di ok, quindi c'è qualcosa che ancora non va, riposto i codici suggeriti da solowifi nella situazione attuale:

    codice:
    $('form#login_form').submit(function(){
    var user = $("#username").val();
    var pass = $("#password").val();
    
    var GestAs = new XMLHttpRequest();     
    
    var Link="process.asp"
    var Parametri="?User=" + user + "&Pass=" + pass;
    GestAs.open("GET",Link+Parametri, false); /* true-asincrona, false-sincrona */
    GestAs.send();
        
    GestAs.onreadystatechange = function() {   
        if(this.readyState == 4) {
            var Ritorna=this.responseText;
            GestAs=null;
    
            if (Ritorna == 'OK' ) {
                window.location = "index.asp";            
            } else {
                $('#results').show();
    
            }
        } 
    }
        return false;
        });


    mentre la pagina Process.asp
    codice:
    User = Replace(Request.querystring("User"), "'", "''")
    Pass = Replace(Request.querystring("Pass"), "'", "''")
    VarRisp = "Errore"
    
    sql = "SELECT ......."
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, Conn, 3, 3
    
    if rs.eof then
    aut = false
    else
    aut = true
    end if 
    
    if aut = true then
    Session("aut") = rs("ID")
    
    VarRisp="OK"
    
    else
    
    VarRisp="Errore"
    
    end if
    
    response.write(VarRisp)
    Grazie

  9. #9
    Ti ho fornito uno script lato server per trasmettere dati.
    Ti ho fornito uno script lato client per leggere i dati.

    Vedo che quello che mostri e zeppo di incoerenze, specialmente sulle condizioni.
    Tu non stai scrivendo qualcosa che vuoi realizzare.
    Stai semplicemente tentando da assemblare degli script presi a destra e manca senza cognizioni logiche.

    Prima cerca di capire cosa vuoi fare
    Poi studia come farlo passo passo
    Solo in questo modo puoi intervenire sugli errori che si presentano.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,614
    grazie per il tuo aiuto, ma non so come uscirne.....
    a me serve solo fare il login tramite l'uso del form modal di bootstrap, quindi verificare se l'utente è presente o meno nel db, se puoi indicarmi qualche link cui capire meglio, grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.