@sunnyrio

Почему Ajax работает не корректно?

Переписал пример программы из книги O'reilly , запускаю программу в браузере и ничего не происходит, результат работы браузера и сам код ниже:
3391ac940872420393d45d3ac29adbff.png

Содержимое urlpost.html :
<html><head><title>Пример использования Ajax</title>
</head><body><center />
<h1>Загрузка веб-страницы в контейнер DIV</h1>
<div id='info'>Это предложение будет заменено</div>
<script>

params = "url=oreilly.com"
request = new ajaxRequest()
request.open("POST", "urlpost.php", true)
request.setRequestHeader("Content-length", params.length)
request.setRequestHeader("Connection", "close")

request.onreadystatechange = function()
{
   if (this.readyState == 4)
   {
      if (this.status == 200)
      {
         if (this.responseText != null)
         {
            document.getElementById('info').innerHTML = this.responseText
         }
         else alert("Ошибка Ajax: Данные не получены")
      }
      else alert( "Ошибка Ajax: " + this.statusText)
   }
}

request.send(params)

function ajaxRequest()
{
   try
   {
      var request = new XMLHttpRequest()
   }
   catch(e1)
   {
      try
      {
         request = new ActiveXObject("Msxml2.XMLHTTP")
      }
      catch(e2)
      }
         try
         {
            request = new ActiveXObject("Microsoft.XMLHTTP")
         }
         catch(e3)
         {
            request = false
         }
      }
   }
   return request
}
</script></body></html>


Содержимое urlpost.php :
<?php // urlpost.php
if (isset($_POST['url'])) {
   echo file_get_contents("http://".SanitizeString($_POST['url']));
}

function SanitizeString($var) {
   $var = strip_tags($var);
   $var = htmlentities($var);
   return stripslashes($var);
}
?>
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
@Sad_Bro
На темной стороне.
Что то со скобками путаница какая то при создании XHR, я удалил кроссбраузерность, там сам разберешься потом.
ну и заголовок не много другой надо отправить.

<!DOCTYPE html>
<html lang="ru">
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
   <center />
<h1>Загрузка веб-страницы в контейнер DIV</h1>
<div id='info'>Это предложение будет заменено</div>
<script>

params = "url=oreilly.com"
request = new ajaxRequest()
request.open("POST", "urlpost.php", true)
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
request.setRequestHeader("Connection", "close")

request.onreadystatechange = function()
{
   if (this.readyState == 4)
   {
      if (this.status == 200)
      {
         if (this.responseText != null)
         {
            document.getElementById('info').innerHTML = this.responseText
         }
         else alert("Ошибка Ajax: Данные не получены")
      }
      else alert( "Ошибка Ajax: " + this.statusText)
   }
}

request.send(params)

function ajaxRequest()
{
   
      var request = new XMLHttpRequest()
   
   return request
}
</script>
</body>
</html>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы