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

    [AJAX] Codice non funziona su Windows

    Ho il seguente codice:
    codice:
    <script language="javascript">
            var obj = getXMLHttp();
            
            function getResult(content)
            {
                var div = document.getElementById("result");
                div.innerHTML = content;
                if (content == "Setup successfully completed.")
                {
                    var form = document.getElementById("setup_form");
                    form.style.display = "none";
                    div.className = "resultSuccess";
                    div.innerHTML += "
    Click <a href=\"manage.php\" style=\"color: green;\">here</a> to go to the control panel for your new application.";
                }
                else
                    div.className = "resultError";
            }
            
            function createTables()
            {
                var host = document.getElementById("host").value;
                var user = document.getElementById("username").value;
                var pass = document.getElementById("password").value;
                var nuser = document.getElementById("new_username").value;
                var npass = document.getElementById("new_password").value;
                requestPage(obj, "POST", "create_all.php", "host=" + host + "&username=" + user + "&password=" + pass + "&newusername=" + nuser + "&newpassword=" + npass, getResult);
    
                var div = document.getElementById("result");
                div.className = "resultWait";
                div.innerHTML = "Executing scripts...";
            }
        </script>
    E successivamente:
    codice:
    <input type="button" name="submit" value="Create" class="center" onClick="createTables();"/>
    Il codice funzionava benissimo quando l'ho scritto, usando Google Chrome su linux con un webserver in locale. Su windows, con un host remoto, non funziona con nessun browser. Ho appurato che la funzione createTables non viene nemmeno invocata, perciò presumo che l'errore sia prima, magari in getHMLHttp():
    codice:
    function getXMLHttp()
    {
        var xmlhttp = null;
        if (window.ActiveXObject)
        {
            if (navigator.userAgent.toLowerCase().indexOf("msie 5") != -1)
                return new ActiveXObject("Microsoft.XMLHTTP");
            else
                return new ActiveXObject("Msxml2.XMLHTTP");
        }
        if (!xmlhttp && typeof(XMLHttpRequest) != 'undefined')
            return new XMLHttpRequest();
    }
    Qualche idea?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Leggi qui ci sono diversi errori nella tua chiamata e spiegarteli potrebbe confonderti.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    L'articolo che mi hai proposto parla di come viene implementato l'oggetto HttpRequest su internet explorer. Se fosse solo quello il problema, allora il codice non avrebbe motivo di non funzionare su firefox e chrome. Infatti anche usando il codice proposto comunque non cambia nulla.

    P.S.: sei "quel" Cavicchia? Camplus?

  4. #4
    senti visto che la ho appena fatta:
    Javascript Ajax: Simple Copy & Paste Ajax Post Get Implementation For Beginners

    cioè, intanto cominciamo con l'avere un ajax che funzioni, visto che vedo usi XMLHttpRequest.

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Il Totem
    L'articolo che mi hai proposto parla di come viene implementato l'oggetto HttpRequest su internet explorer. Se fosse solo quello il problema, allora il codice non avrebbe motivo di non funzionare su firefox e chrome. Infatti anche usando il codice proposto comunque non cambia nulla.
    Il link e come stanziare oggetto XMLHttpRequest sui diversi browser, ma non è solo quello il problema studiati tutta la guida l'ho usata spesso prima di avvicinarmi a jquery e posso dirti che va benissimo, oppure usa quella di TrueLies
    P.S.: sei "quel" Cavicchia? Camplus?
    No
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Allora, tutto questo ha poco senso. Non vedo l'utilità di cambiare tutte quelle varianti sul codice di getHMLHttp. L'unica cosa per cui differiscono sono i catch e le condizioni negli if, ma tutte queste condizioni riguardano l'istanziamento di HttpRequest su Internet Explorer, il che mi interessa poco, perché il codice non funziona su nessun browser (con windows).
    Ammettiamo per un attimo che non esista IE. Il codice per ottenere un oggetto sarebbe semplicemente new XMLHttpRequest(). Detto questo, io so per certo che tutto il codice funziona su Google Chrome su linux mint 8, con web server apache in locale.
    Perché allora non dovrebbe funzionare su Chrome o Firefox (su windows), che hanno esattamente lo stesso modo di ottenere l'oggetto?

    Edit: l'errore non era nel javascript. I browser che ho su windows non supportano più la chiusura automatica /> per i tag, mentre evidentemente su mint 8 la mia versione di chrome è ancora vecchiotta.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma... t'ho perso, comunque mi sembra di capire che hai risolto meglio cosi.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Andrè l'ho perso pure io nun te preoccupà :-)

    Mezzo mondo usa Windows e i loro ajax funzionano esattamente a quella maniera - ma certo che se uno prima ci chiede i codici e poi quando li ottiene ne rifiuta l'impiego per motivi "ideologici" c'è poco da fare.

    "il codice funziona su Google Chrome su linux mint 8, con web server apache in locale.
    Perché allora non dovrebbe funzionare su Chrome o Firefox (su windows), che hanno esattamente lo stesso modo di ottenere l'oggetto?"

    Perchè se usi quello che t'ho consigliato io o Andrea, funziona. Se ti ostini ad usare il tuo, funzionerà benissimo su Chrome messo su Linux Mint versione 8 che già riduce abbastanza la platea... se poi lo passi alla ulteriore condizione "in localhost", funziona solo a te!

    Se vuoi un ajax che funzioni pressochè ovunque, quello è: "cambiare tutte quelle varianti" è esattamente il modo di farlo funzionare (su "Windows", anche).

    Diversamente dal che mi dispiaccio di entrambe le cose: di averti deluso nel tuo (in sè legittimo) purismo (purtroppo è da che esistono i computer che le implementazioni non seguono mai le specifiche sempre ed alla lettera), e di aver speso tempo su un problema che non era legato a soddisfare tue esigenze pratiche ma (intendasi in senso etimologico e non certo derogativo) di pre-giudizio (="codice per ottenere un oggetto sarebbe semplicemente" ecc... il problema è proprio quel semplicemente: Ajax cross platform e cross browser non è semplice)

    ciau e auguri!

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    @TrueLies Pat... pat (colpi sulla schiena), sputa il vocabolario che quando ti leggo devo aprire il traduttore di google e si impalla pure lui
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Non c'entra niente il fatto del purismo o no. Io non sono uno sviluppatore web, è solo un caso che abbia dovuto usare ajax per il lavoro che sto facendo. Ho sicuramente idee su altre cose, ma non su questo.

    Non ho rifiutato nessun codice di quelli che mi avete dato, li ho provati tutti (nonostante non ne vedessi l'utilità, e avevo ragione). Anche perché quello che usavo non l'ho scritto io, ma l'ho preso a mia volta da un altro sito.

    La questione sta nel fatto che voi non avete capito il problema. Siete partiti in quarta sul vostro binario senza soffermarvi sui dati che vi ho proposto, che non erano comunque sufficienti a risolvere, dato che il problema era una mera idiozia dalla parte dell'html, ancorché i tag script con autochiusura non vengono supportati.

    Se l'ho testato su chrome da entrambe le parti, allora il problema non può essere la compatibilità con IE, vi pare? Perché se fosse quello il punto, allora il codice funzionerebbe anche su Firefox e Chrome su windows, il che non è vero. Quindi l'errore deve essere da qualche parte tra le versioni dei browser o le implementazioni su os diversi, poiché sono le uniche differenze significative tra le due prove.
    Questo è l'unico motivo logico per cui ho scartato IE dalla prova, non per una qualche superiorità morale o roba del genere. Semplicemente una deduzione da dati di fatto.

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.