• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

AJAX. Connection lose.

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
106 wizyt
pytanie zadane 18 listopada 2015 w JavaScript przez ShiroUmizake Nałogowiec (46,300 p.)

Taki mam o to kodzik.

function LoadText ()
{
var content,co1;
var xml= new XMLHttpRequest();
xml.open( "GET" , "http://localhost/home/JS/XML/content0.xml", true);

	xml.onreadystatechange = function ()
	{
		if (xml.readyState == 4)
			{
		
			var co1 = content.getElementsByTagName("article").childNodes[0].nodeValue;
			cont.innerHTML = co1;
			}
		else
			{
			cont.innerHTML = "cos nie pyklo";
			}
	};
	
xml.send();	
}

No i pliczek XML

<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<?xml-stylesheet type="text/css" href="xml_style.css"?>
<?xml-stylesheet type="text/css" href="https://fonts.googleapis.com/css?family=Raleway:200" ?>
<!DOCTYPE content [
	
	<!ELEMENT span (#PCDATA)>
	<!ELEMENT article (#PCDATA)>
	<!ELEMENT p (#PCDATA)>
	<!ELEMENT button (img)>
	<!ELEMENT article (span)>
	]>
<content>

	<p>
		<span>W</span>
		ho I am?
	</p> 
	<article>
		<span>H</span>ello in my website
		<br />
	tekst
	</article>
	<button>
		<img src="Image/arrow_right.png" id="arrow"></img>
	</button>
</content>

Kod wcześniej, wysyłał żądanie, ale zwracał object window, nastepnie po paru poprawkach przestał w ogóle reagować na połącznie. Pytanie: gdzie jest błąd?

1 odpowiedź

0 głosów
odpowiedź 18 listopada 2015 przez Magicone Nałogowiec (45,100 p.)
Zmienna content jest wyłącznie zdefiniowana, a nie zadeklarowana. Toteż odnoszenie się do typu undefined mija się z celem. Zamiast tego, jak mniemam musisz odnieść się do atrybutu response/responseXML(?) zmiennej xml, która jest instancją żądania XMLHttpRequest. Btw. mniemam, że w zmiennej cont siedzi przypisany element, bądź element w htmlu ma takie id :D
komentarz 19 listopada 2015 przez ShiroUmizake Nałogowiec (46,300 p.)
edycja 19 listopada 2015 przez ShiroUmizake

tak cont jest elementem HTML ;). Faktycznie moje przeoczenie, jednakże teraz content odnosi się do żądania XML Response, ale serwer dalej nie chce wykonać połączenia. Wynikiem czego content jest pusty. Poniżej kod.

function LoadText ()
{
var xml= new XMLHttpRequest();
var tester = document.getElementById("test");
xml.open( "GET" , "http://localhost/home/JS/XML/content0.xml", true);

	xml.onreadystatechange = function ()
	{
		if (xml.readyState == 4)
			{
			var content = xml.responseXML;
			var text = content.getElementsByTagName("article").childNodes[0].nodeValue;
			}
		else
			{
			tester.innerHTML = "cos nie pyklo";
			}
	};
	
xml.send();	
}

Btw, korzystam z servera XAMMP. Według mnie problem leży w żądaniu węzła. Za chwilę przetestuje czy content faktycznie jest pusty.

Edit: Ciekawe, skrypt twierdzi, że nie jest pusty. To problem leży w żądaniu węzła.

Podobne pytania

0 głosów
2 odpowiedzi 424 wizyt
pytanie zadane 2 stycznia 2024 w JavaScript przez szpon12 Obywatel (1,260 p.)
0 głosów
1 odpowiedź 364 wizyt
0 głosów
1 odpowiedź 1,006 wizyt
pytanie zadane 3 marca 2023 w JavaScript przez walkalm Nowicjusz (120 p.)

93,434 zapytań

142,429 odpowiedzi

322,662 komentarzy

62,797 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...