Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ajax xmlHTTPRequest

Автор вопроса: Amir TugiОтветов: 1

Я пытаюсь получить содержимое страницы с помощью AJAX и не получаю результата.

это код:

<script type="text/javascript">
function onSumResponse() {
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://www.arihav.com/",true);
xmlhttp.send();
}

</script>

А это div в теле:

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="onSumResponse()">Change Content</button>

То, что я получаю после клика, это пустой div.

РЕДАКТИРОВАТЬ: Этот код был взят из w3schools.

РЕДАКТИРОВАТЬ 2: Это код в vbscript, который работает:

GotothisURL = "http://www.arihav.com"
Set GetConnection = CreateObject("Microsoft.XMLHTTP")
GetConnection.Open "get", GotothisURL, False
GetConnection.Send
ResponsePage = GetConnection.responseText
  • Вы проверили ответ, исходящий от вызова ajax? вы хоть какие-то данные получаете? Tomer 08.07.2012
  • Вероятно, это междоменный запрос, поэтому он, вероятно, не сработает. Также плохо то, что у вас код для IE6, IE5 комментарий. Ry-♦ 08.07.2012
  • @ ftom2: Что вы подразумеваете под проверкой ответа? Я изменил содержимое div в соответствии с функцией. Разве этого недостаточно? Amir Tugi 08.07.2012
  • Сделайте предупреждение или console.log в xmlhttp.responseText, я предполагаю, что он пуст, а затем проблема заключается в том, что сервер не отправляет данные. Кроме того, если вы можете, я бы посоветовал вам начать использовать jquery, это сделает вашу жизнь намного проще. Tomer 08.07.2012
  • Оповещение вернулось пустым. Это действительно странно, потому что у меня есть этот простейший код в vbscript, который работает, но я не могу заставить что-то еще работать. (Мне это нужно на PHP). Amir Tugi 08.07.2012
  • Как сказал @minitech, это похоже на междоменный запрос, что означает, что он не будет работать, если запрошенный сервер явно не разрешает такие запросы. Mitya 08.07.2012

xmlhttprequestajax

Ответы

Ответ 1 · itsme

AJAX не разрешает доступ к другому серверу из-за политики происхождения, если вы хотите запросить другой хост, лучше использовать curl или JSON

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы