Показать сообщение отдельно
  #1 (permalink)  
Старый 11.06.2012, 01:07
Аспирант
Отправить личное сообщение для Heidel Посмотреть профиль Найти все сообщения от Heidel
 
Регистрация: 11.06.2012
Сообщений: 71

Ошибка в извлечении XML с помощью Ajax
Делаю пример из книжки
<!-- xmlget.html -->
<html>
	<head>
		<title> Пример извлечения XML с помощью Ajax </title>
	</head>
	
	<body><center />
	<h1>Загрузка XML-содержимого в контейнер DIV</h1>
	<div id="info"> Это предложение будет заменено </div>
	
	<script type="text/javascript">
	
	function ajaxRequest()
	{
		var r;
		try // Для всех браузеров, кроме ие
		{
			r = new XMLHttpRequest();
		}
		catch(e)
		{
			try // ие6+
			{
				r = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e)
			{
				try // ie5
				{
					r = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e) // Браузер не поддерживает Ajax
				{
					r = false;
				}
			}
		}
	return r;
	}	
	
	var nocache = "&nocache=" + Math.random()*1000000;
	url = "rss.news.yahoo.com/rss/topstories";
	var request = ajaxRequest();
	if(request)
	{
		request.open("GET", "xmlget.php?url=" + url + nocache, true)
		out = "";
				
		request.onreadystatechange = function()
		{
			if(this.readyState == 4)
			{
				if(this.status == 200)
				{
					if(this.responseXML != null)
					{
						titles = this.responseXML.getElementByTagName('title')
						for (j = 0; j < titles.length; ++j)
						{
							out += titles[j].childNodes[0].nodeValue + '<br />'
						}
						document.getElementById('info').innerHTML = out;
						
					}
					else alert("Ошибка Ajax: Данные не получены")
				}
			else alert("Ошибка Ajax: " + this.statusText)
			}
		}
		request.send(null)
	}
	else 
	{
		alert("Ошибка: Ваш браузер не поддерживает AJAX")
	}
	</script></body></html>

пхп-файл
<?php//xmlget.php
//error_reporting(E_ALL);
function sanitazeString($var) 
	{
		$var = strip_tags($var);
		$var = htmlentities($var);
		return stripslashes($var);
	}

if(isset($_GET['url']))
	{
		header('Content-Type: text/xml');
		echo file_get_contents("http://".sanitazeString($_GET['url']));
	}
?>

В консоли ошибок js никаких нет, но браузер выдает
Ошибка Ajax: данные не получены
Что тут неправильно?

Последний раз редактировалось Heidel, 11.06.2012 в 01:09.
Ответить с цитированием