Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema su AJAX

  1. #1
    Utente di HTML.it L'avatar di dani10
    Registrato dal
    Nov 2001
    Messaggi
    49

    Problema su AJAX

    Mi sto avvicinando ad AJAX però al momento dell'esecuzione mi da errore potreste aiutarmi ? Grazie di seguito vi posto il codice

    Pagina index.html
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>

    <script type="text/javascript" src="libAjaxUtil.js"></script>

    </head>

    <body>

    <div id="content">
    Non posso utilizzare AJAX
    </div>
    <script language="javascript">
    <!--
    function ajaxCallback(){
    try{
    if( xmlHttpRequest.readyState == 4 ){
    // risposta completa
    if( xmlHttpRequest.status = 200 ){
    // risposta positiva
    var text = xmlHttpRequest.responseText;
    var doc = xmlHttpRequest.responseXML;
    document.getElementById('content').innerHTML = text;
    }else{
    // 404 ( Not Found )
    if( xmlHttpRequest.status == 400 ) { alert("404: Not Found"); }
    else if(xmlHttpRequest.status == 500 ) { alert("500: Internal Server Error"); }
    else { alert( xmlHttpRequest.status + ": " + xmlHttpRequest.statusText);}
    }
    }else{
    // risposta in esecuzione
    }
    }catch(e){
    alert("Errore in callback function:" + e.description );
    }
    }

    var xmlHttpRequest = makeXMLHttpRequest();
    if( !xmlHttpRequest ){
    alert("Non è possibile utilizzare AJAX!");
    }else{
    xmlHttpRequest.onreadystatechange = ajaxCallback;
    // apre la connessione (GET )
    xmlHttpRequest.open('POST', 'content.html', true );
    // esegue la richiesta
    xmlHttpRequest.send(null);
    }
    //-->
    </script>

    </body>
    </html>

    contenuto libAjaxUtil.js

    // JavaScript Document
    function makeXMLHttpRequest(){
    var request = undefined;
    if( window.XMLHttpRequest ){
    request = new XMLHttpRequest();
    if( request.overrideMimeType ) {
    request.overrideMimeType("text/xml");
    }
    }else{
    if( window.ActiveXObject ){
    try{
    rewust = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    try{
    request = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){}
    }
    }
    }
    return request;
    }

    e infine content.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>

    <body>

    <h2>AJAX funziona !!!</h2>


    </body>
    </html>


    L'errore che mi da è il seguente "Errore in callback function: Azione non valida per l'oggetto
    Dani10

  2. #2
    Utente di HTML.it L'avatar di dani10
    Registrato dal
    Nov 2001
    Messaggi
    49

    Nessuno che mi può dare una mano ?

    Nessuno che sa aiutarmi ...
    Dani10

  3. #3

    Piccola distrazione ....

    Ciao ho notato che il tuo codice ha 2 piccoli errori di distrazione:
    codice:
     if( xmlHttpRequest.status =  200 )
    dovrebbe essere
    codice:
    if( xmlHttpRequest.status ==  200 )
    questo perchè il tuo if assegna il valore 200 ad una variabile in sola lettura piuttosto che controllarlo (da lì l'errore : Azione non valida per l'oggetto ).
    Fatta questa modifica a me funziona.

    Nota Bene: il controllo sullo status uguale a 200 vale se i file sono caricati in un webserver. Se invece li provi in locale senza richiederli al webserver lo status non sarà mai 200 ma bensì 0.
    Varia in caso l'if precedente con
    codice:
    if( xmlHttpRequest.status == 200  || xmlHttpRequest.status == 0)
    questo potrebbe essere il 2° errore che non ti visualizzerebbe niente.
    Ciao.

  4. #4
    Utente di HTML.it L'avatar di dani10
    Registrato dal
    Nov 2001
    Messaggi
    49

    Grazie

    Sei stato molto gentile !!!
    Dani10

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.