XHR - nietypowe spotkanie

Odpowiedz Nowy wątek
2011-09-13 11:15
0

Witam po raz x, znów muszę poradzić się ekspertów ponieważ przy uruchomieniu strony jaką zrobiłem na bazie pliku json, js i html nie wyświetla się dokładnie to o co mi chodziło

Przejdźmy do rzeczy, oto pliki

books.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=utf-8">
    <title>Podstawy technologii AJAX - Javascript i XML</title>
    <script type="text/javascript" src="books.js"></script>
  </head>
    <body onload="process()">
        <p>Serverze jakie sa twoje ulubione ksiazki?</p>
        <div id="myDivElement">
    </body>
</html>

books.js

//Przechowuje obiekt XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

//Tworzy obiekt klasy XMLHttpRequest
function createXmlHttpRequestObject(){

    var xmlHttp

    try{
        xmlHttp = new XMLHttpRequest();
    }
    catch(e){
        try{
            xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
        }
        catch(e){}
    }

    if(!xmlHttp)
        alert("Blad podczas tworzenia obiektu klasy xmlHttpRequest");
    else
        return xmlHttp;
}

//Odczytuje zawartosc pliku znajdujacego sie na serverze
function process(){
    if(xmlHttp){
        try{
            xmlHttp.open("GET", "books.TXT", true);
            xmlHttp.onreadystatechange = handleRequestStateChange;
            xmlHttp.send(null);
        }
        catch(e){
            alert("Nie udalo sie nawiazac polaczenia z serverem:\n" + e.toString());
        }
    }
}

//Funkcja wywolywana po zmianie statusu rzadania HTTP
function handleRequestStateChange(){
    if(xmlHttp.readyState == 4){
        if(xmlHttp.status == 200){
            try{
                handleServerResponse();
            }
            catch(e){
                alert("Wystapil blad podczas odczytywania odpowiedzi: \n" + e.toString());
            }
        }
        else
        {
            alert("Podczas pobierania danych wystapil blad:\n" + xmlHttp.statusText);
        }
    }
}

//Funkcja obslugujaca odpowiedz z servera
function handleServerResponse()
{
    var jsonResponse = eval ('(' + xmlHttp.responseText + ')');
    var html = "";

    for( var i=0; i<jsonResponse.books.lenght; i++)
        html += jsonResponse.books[i].title + ", " + jsonReponse.books[i].isbn + "<br />";

    myDiv = getElementById("myDivElement");
    myDiv.innerHTML = "<p> Server mowi: </p>" + html;
}

Oraz plik books.TXT który zawiera składnię json

{books:[
     {title: "Ksiazka 1",
      isbn: "78954-98"}
     {title: "Ksiazka 2",
      isbn: "78945-51"},
     {title: "Ksiazka 3",
      isbn: "1548-986"}
]}

Gdy otworzę w przeglądarce (testuje na oprze) plik books.html pojawia się http://imageshack.us/photo/my-images/717/servercf.png/

I tutaj moje pytanie, dlaczego server nie przesyła odpowiedzi z pliku books.TXT i nie wyświetla się jego zawartość?


"Nie ważne by być lepszym od innych, ważne by być lepszym niż było się wczoraj"
Od siebie dodam jeszcze ze w operze przy debugowaniu nie ma żadnych błędów, a w Firefox'ie w dodatku FireBug widać nawet że plik books.TXT jest wysyłany - Eldiane 2011-09-13 11:18

Pozostało 580 znaków

2011-09-13 11:38
studenciak
0

Masz pełno literówek w kodzie, length nie lenght ;) jsonResponse nie jsonReponse itd.

Ok dzięki, ale dlaczego w takim razie Debuger tego nie pokazal? ;o - Eldiane 2011-09-13 11:42

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0