XHR - nietypowe spotkanie

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ść?

0

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

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