Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174

    Magie con AJAX: c'è ma non si vede...

    Buongiorno a tutti. Come da oggetto ho uno stranissimo problema con AJAX. Ho hostato al seguente indirizzo una pagina provvisoria per un mio sito che svilupperò quando avrò un pò di tempo, nel quale faccio una chiamata AJAX ad uno script php contenente il seguente codice
    codice:
    <?php
    echo '<span id="date">' . date('l jS \of F Y H:i:s') . '</span>';
    ?>
    La cosa strana che mi si verifica è che se dal browser del pc di casa (dove ho sviluppato la pagina) visito l'indirizzo sopra specificato la pagina mi appare correttamente e ad ogni secondo viene eseguita la chiamata allo script per aggiornare la data. Se faccio la stessa cosa dal pc dell'ufficio (un'altra rete, un'altro router, un'altro provider, stesso browser e stesso SO) la pagina mi viene visualizzata interamente tranne che per il contenuto ricavato dallo script.
    Avevo prima fatto la chiamata manualmente con il seguente codice
    codice:
    function init() {
                    setTimeout('getDate()', 0);
                    setInterval('getDate()', 1 * 1000);
                }
                
                function getDate() {
                    var oXHR = new XMLHttpRequest;
                    oXHR.open('get', 'utils.php', false);
                    oXHR.onreadystatechange = function() {
                        if (oXHR.readyState == 4 && oXHR.status == 200) {
                            document.getElementById('date').innerHTML = oXHR.responseText;
                        }
                    }
                    oXHR.send(null);
                }
    poi sostituito con una chiamata ajax di jQuery, ma il risultato non cambia. Secondo voi a cosa può essere dovuto?
    Grazie infinite a chi mi aiuterà a risolvere questo mistero.

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669

    Re: Magie con AJAX: c'è ma non si vede...

    Originariamente inviato da Hermiod
    poi sostituito con una chiamata ajax di jQuery, ma il risultato non cambia. Secondo voi a cosa può essere dovuto?
    Grazie infinite a chi mi aiuterà a risolvere questo mistero.
    Probabilmente alle impostazioni del browser. A me funziona perfettamente.

    P.S. Calcola che stai usando una funzione malefica che crea una closure ogni secondo che poi ti resterà aperta fin quando l'utente non chiude la pagina. Memoria inutilmente sprecata. Metti la funzione assegnata a onreadystatechange fuori da getDate(). E dall'interno di essa, invece di accedere all'oggetto XMLHttpRequest appena creato tramite la variabile oXHR (divenuta a questo punto inaccessibile), accedici tramite l'oggetto this (es. this.status invece di oXHR.status, this.responseText invece di oXHR.responseText, etc. etc.). Ad es. così:

    codice:
    function fCallback() {
    	if (this.readyState == 4 && this.status == 200) {
    		document.getElementById('date').innerHTML = this.responseText;
    	}
    }	
    
    function getDate() {
    	var oXHR = new XMLHttpRequest;
    	oXHR.open('get', 'http://manintasca.altervista.org/utils.php', false);
    	oXHR.onreadystatechange = fCallback;
    	oXHR.send(null);
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Ciao, grazie innanzi tutto per la risposta e per il suggerimento. Potrebbe dipendere dal router?! sui pc di due colleghi con sistemi operativi diversi e browser diversi ho lo stesso problema...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Come non detto, ho riutilizzato jQuery per eseguire la chiamata impostando l'url assoluta e adesso funziona perfettamente, grazie infinite.

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Hai provato ad aprire la pagina http://manintasca.altervista.org/utils.php manualmente da quei computer?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Comunque il problema non sarebbe stato lo script o la sua raggiungibilità (infatti il php era raggiungibile e funzionante), bensì la serie di problematiche dovute alla sicurezza gestita da ajax.

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.