Показать сообщение отдельно
  #1 (permalink)  
Старый 28.03.2014, 08:43
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

ajax запрос со статусом 0
Для изучения php поставил себе Денвер и начал писать небольшую панельку себе в удобство. Однако. Когда я решил перейти от <form> тегов к ajax у меня везде стала вылезать ошибка 0. У меня windows 7 Денвер и все порты открыты + брандмауэр успешно отключён ещё пару лет назад. Но что делать? Может у кого уже была такая же проблема? Подскажите прошу.
Вот собственно и код страницы
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta charset="windows-1251"/>
<style>
textarea{width:500px;height:500px;}
#filename{height:50px;}
input{width:500px;}
</style>
</head>
<body>
<textarea id="filename">Имя документа</textarea><br />
<textarea id="filebody">Тело документа</textarea><br />
<input onclick="xhr()" type="submit"/>
<script>
	function xhr()
	{
		var xhr=new XMLHttpRequest();
		var params = 'filename=' + encodeURIComponent(document.getElementById('filename').value) + '&filebody=' + encodeURIComponent(document.getElementById('filebody').value); 
		xhr.open('POST','localhost/filecraftphp.php?'+params,true);
		xhr.onreadystatechange = function() 
		{  
    		if (xhr.readyState != 4) return; 
    		if (xhr.status != 200) 
			{
      			// status=0 при ошибках сети, иначе status=HTTP-код ошибки
      			alert('Ошибка ' + xhr.status + ': ' + xhr.statusText);
      			return; 
    		}
  		}	
		alert(xhr.status);
	}
</script>
</body>
</html>

И код обработчика
<?php
$filename=$_POST['filename'];
$filebody=$_POST['filebody'];
if(!file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html')){
	fopen($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html','x+');	
}
else{$old_file=file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html');}
$html="
<!DOCTYPE html>
<html>
<head>
<meta charset='windows-1251'/>
<title>$filename</title>
</head>
<body>
$filebody
</body>
</html>
";
if(strlen($filename)>5){
	if($old_file!=$html)
	{
		file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$filename.'.html',$html);
	}
}
?>

Последний раз редактировалось koeshiro, 28.03.2014 в 08:47.
Ответить с цитированием