Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    [Ajax] Script che funziona solo in locale

    Salve,
    sto realizzando un sito in PHP e per adesso lo sto facendo in locale. In parole povere ho un server installato sulla mia macchina.

    Ho integrato in una della pagine due script che mi consentono di aggiornare in modo asincrono pare della stessa

    script 1
    Codice PHP:
    // funzione per prendere un elemento con id univoco
    function prendiElementoDaId(id_elemento)
        {
            var 
    elemento;
            if(
    document.getElementById)
                
    elemento document.getElementById(id_elemento);
            else
                
    elemento document.all[id_elemento];
            return 
    elemento;
        };

    // funzione per assegnare un oggetto XMLHttpRequest
    function assegnaXMLHttpRequest()
        {
            var
            
    XHR null,
            
    browserUtente navigator.userAgent.toUpperCase();
            if(
    typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
                
    XHR = new XMLHttpRequest();
            else if(
    window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0)
                {
                    if(
    browserUtente.indexOf("MSIE 5") < 0)
                        
    XHR = new ActiveXObject("Msxml2.XMLHTTP");
                    else
                        
    XHR = new ActiveXObject("Microsoft.XMLHTTP");
                }
            return 
    XHR;
        };

    /** OGGETTI / ARRAY */

    // oggetto di verifica stato
    var readyState =
        {
            
    INATTIVO:    0,
            
    INIZIALIZZATO:    1,
            
    RICHIESTA:    2,
            
    RISPOSTA:    3,
            
    COMPLETATO:    4
        
    };

    // array descrittivo dei codici restituiti dal server
    // [la scelta dell' array è per evitare problemi con vecchi browsers]
    var statusText = new Array();
    statusText[100] = "Continue";
    statusText[101] = "Switching Protocols";
    statusText[200] = "OK";
    statusText[201] = "Created";
    statusText[202] = "Accepted";
    statusText[203] = "Non-Authoritative Information";
    statusText[204] = "No Content";
    statusText[205] = "Reset Content";
    statusText[206] = "Partial Content";
    statusText[300] = "Multiple Choices";
    statusText[301] = "Moved Permanently";
    statusText[302] = "Found";
    statusText[303] = "See Other";
    statusText[304] = "Not Modified";
    statusText[305] = "Use Proxy";
    statusText[306] = "(unused, but reserved)";
    statusText[307] = "Temporary Redirect";
    statusText[400] = "Bad Request";
    statusText[401] = "Unauthorized";
    statusText[402] = "Payment Required";
    statusText[403] = "Forbidden";
    statusText[404] = "Not Found";
    statusText[405] = "Method Not Allowed";
    statusText[406] = "Not Acceptable";
    statusText[407] = "Proxy Authentication Required";
    statusText[408] = "Request Timeout";
    statusText[409] = "Conflict";
    statusText[410] = "Gone";
    statusText[411] = "Length Required";
    statusText[412] = "Precondition Failed";
    statusText[413] = "Request Entity Too Large";
    statusText[414] = "Request-URI Too Long";
    statusText[415] = "Unsupported Media Type";
    statusText[416] = "Requested Range Not Satisfiable";
    statusText[417] = "Expectation Failed";
    statusText[500] = "Internal Server Error";
    statusText[501] = "Not Implemented";
    statusText[502] = "Bad Gateway";
    statusText[503] = "Service Unavailable";
    statusText[504] = "Gateway Timeout";
    statusText[505] = "HTTP Version Not Supported";
    statusText[509] = "Bandwidth Limit Exceeded"
    script 2

    Codice PHP:
    // INIZIO INTEGRAZIONE CODICE PER LA GESTIONE DEI FILTRI IN AJAX
    function caricaTesto(nomeFile)
        {
            var
            
    ajax assegnaXMLHttpRequest(),
            
    elemento prendiElementoDaId("box_edit_calendario"),
            
    cmbNome prendiElementoDaId("nome"),
            
    cmbLuogo prendiElementoDaId("luogo"),
            
    cmbData prendiElementoDaId("data"),
            
    cmbOra prendiElementoDaId("ora"),
            
    nome "nome=" cmbNome.value,
            
    luogo "luogo=" cmbLuogo.value,
            
    data "data=" cmbData.value,
            
    ora "ora=" cmbOra.value;
            
    variabileTot nome "&" luogo "&" data "&" ora;
            if(
    ajax)
                {
                    
    ajax.open("post"nomeFiletrue);
                    
    ajax.setRequestHeader("content-type""application/x-www-form-urlencoded");
                    
    ajax.setRequestHeader("content-type""text/html; charset=ISO-8859-1");
                    
    ajax.setRequestHeader("connection""close");
                    
    ajax.onreadystatechange = function()
                        {  
                            if(
    ajax.readyState === readyState.COMPLETATO)
                                {
                                    if(
    statusText[ajax.status] === "OK")
                                        
    elemento.innerHTML ajax.responseText;
                                    else
                                        {
                                            
    elemento.innerHTML "<tr><td colspan=\"4\">Errore durante l'esecuzione dello script.</td></tr>";
                                            
    elemento.innerHTML += "<tr><td colspan=\"4\">Errore corrente: " statusText[ajax.status] + "</td></tr>";
                                        }
                                } 
                        }
                    
    ajax.send(variabileTot);
                }
            return 
    null;
        } 
    // FINE INTEGRAZIONE AJAX 
    nella pagina in questione richiamo all'evento onchange delle select in questo modo

    codice:
    onchange=\"return caricaTesto('table.php')\
    il problema è il seguente

    se scrivo nel browser

    http://localhost/pagina.php

    funziona tutto regolarmente

    se provo a collegarmi dall'esterno facendo

    http://mioip/pagina.php

    il server funziona. riesco a visualizzare la pagina. ma non funziona più ajax. settando il filtro mi scompare tutto.

    per caso bisogna settare qualcosa sul server affinchè tutto fili liscio?

    grazie
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    ma riesci a chiamare table.php dal browser?
    I DON'T Double Click!

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    si certo che riesco . come ti ho detto riesco tranquillamente a farlo funzionare se utilizzo localhost, mentre se lo richiamo da un pc esterno funziona tutto tranne che ajax
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Secondo me non funziona perché il riconosce come due domini diversi
    localhost e mioip ed essendo ajax eseguibile in locale (no domini diversi) non va
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    forse non mi sono espresso in modo chiaro.

    io ho un server apache sul mio pc. per accedere a tale server digito nel browser
    http://localhost/miosito

    se voglio accedere dall'esterno(quindi non dal mio pc) digito

    http://mioip/miosito

    in entrambi i casi il sito mi viene visualizzato

    il problema è ajax.

    mentre nel primo caso esegu il lavoro alla perfezione, nel secondo caso non funziona.
    nel codice javascript non è indicato nessun riferimento al sito. i percorsi sono relativi e non assoluti.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    ti fidi a postare l'ip? altrimenti usa firefox e guarda cosa stampa la console degli errori
    I DON'T Double Click!

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da ciro78
    forse non mi sono espresso in modo chiaro.

    io ho un server apache sul mio pc. per accedere a tale server digito nel browser
    http://localhost/miosito

    se voglio accedere dall'esterno(quindi non dal mio pc) digito

    http://mioip/miosito

    in entrambi i casi il sito mi viene visualizzato

    il problema è ajax.

    mentre nel primo caso esegu il lavoro alla perfezione, nel secondo caso non funziona.
    nel codice javascript non è indicato nessun riferimento al sito. i percorsi sono relativi e non assoluti.
    Se la chiamata ajax quando sei su mioip/miosito punta allo stesso "dominio/cartella" (mioip/misito/pagina1.xxx) e non funziona, all'ora c'è qualcosa che non va.
    Ma se punta a localhost/miosito/pagina1.xxx all'ora e tutto regolare ajax tutto quello che punta al di fuori del dominio principale (in questo caso localhost) compresi i sotto domini non funziona per motivi di sicurezza, che tua sia internet o intranet la cosa non cambia.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ciao andrea,
    come puoi vedere dal codice punta a cartella/nomefile.php

    quindi non riesco a capire proprio quale sia l'errore
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Originariamente inviato da artorius
    ti fidi a postare l'ip? altrimenti usa firefox e guarda cosa stampa la console degli errori

    la console degli errori di firefox, mi segnala con un punto esclamativo che è stata passata una stringa vuota a getelementbyId()

    ma non passo mai campi vuoti
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  10. #10
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ehm aggiungo un'altra cosa. fino ad ora avevo provato solo con firefox

    con explorer funziona

    quindi il problema è firefox e la funzione che preleva l'elemento in base agli id
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.