AJAX статус = 0 - PullRequest
       32

AJAX статус = 0

1 голос
/ 07 июня 2011

Я пытаюсь получить информацию с удаленного сервера на моей локальной машине.У readyState нет проблем, т.е. == 4.однако, когда я нажимаю кнопку, статус всегда равен 0 (вместо 200), он ничего не возвращает.

вот код:

<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
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.spartanbook.com/textbooks_xml.asp?control=campus&campus=45&term=80',true);
xmlhttp.send();
}
</script>
</head>
<body>

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

</body>
</html>

Это в основном от w3shcools.просто заменил URL.URL-адрес, который я использую, работает, когда я вставляю его в адресную строку моего браузера.

Есть идеи?Спасибо !!

Ответы [ 3 ]

6 голосов
/ 07 июня 2011

Убедитесь, что вы не делаете междоменный запрос.

Если, например, вы не обслуживаете эту страницу с http://www.spartanbook.com, то ожидаемый результат будет запрещен, что, как ни странно, дает readyState 4, но статус 0.

Если вам нужно сделать кросс-доменный запрос, вам нужно использовать прокси.

0 голосов
/ 13 декабря 2012

Как говорит Гэвин, похоже, ваша проблема в том, что вы делаете междоменный запрос, который блокируется большинством браузеров по соображениям безопасности: http://en.wikipedia.org/wiki/Same_origin_policy

Я предлагаю вам удалить код из вашеголокальный компьютер в месте, которое соответствует «Политике того же происхождения», в вашем случае это где-то на www.spartanbook.com.

Однако, есть обходной путь для этой проблемы, который должен использовать JSONP .Это позволит вам получать данные JSON из программы в другом домене.

0 голосов
/ 07 июня 2011

Этот код ошибки указывает, что ответ был пустым. Похоже, проблема с брандмауэром

...