Я только начал изучать ajax на сайте W3Schools. На странице Попробуйте редактор на странице W3Schools.com, когда я попробую следующее code Я получаю правильный ответ, как и следовало ожидать от кода. Вы также можете попробовать код, просто скопировав и вставив на страницу с данной ссылкой «Отправить код», нажав кнопку «Изменить содержимое» в ответе.

 <!DOCTYPE html>
    <html>
        <head>
            <script>
                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==0)
                        {
                            document.getElementById("myDiv").innerHTML="0: request not initialized";
                        }if (xmlhttp.readyState==1)
                        {
                            document.getElementById("myDiv").innerHTML="Server connection establish";
    
                        }if (xmlhttp.readyState==2)
                        {
                            document.getElementById("myDiv").innerHTML="Request has been sent";
                        }if (xmlhttp.readyState==3)
                        {
                            document.getElementById("myDiv").innerHTML="Server is processing the request";
                        }
                        if (xmlhttp.readyState==4 && xmlhttp.status==200)
                        {
                            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                        }
                    }
                    xmlhttp.open("GET","http://www.w3schools.com/ajax/ajax_example.asp",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>

Но когда я пробую тот же код в своем собственном html-файле и нажимаю кнопку «изменить содержимое», я получаю изменение в этом порядке (пожалуйста, не обращайте внимания на ошибки типа)

  • соединение с сервером установлено
  • Запрос был отправлен.

После этого ничего не происходит. Я подключен к Интернету и могу открыть ссылку в браузере (Firefox). Что мне делать?

0
stackOverflow 31 Мар 2013 в 09:59
3
 – 
Musa
31 Мар 2013 в 10:02

1 ответ

Лучший ответ

Вы не можете получить доступ к другому адресу домена с помощью ajax из кода, написанного в вашем локальном html-файле. Междоменные запросы ajax требуют, чтобы вы использовали jsonp для доступа к этим данным.

В первом случае, поскольку вы уже находитесь в домене w3schools при выполнении запроса ajax, он будет работать.

0
redDevil 31 Мар 2013 в 10:03
Спасибо redDevil за быстрый ответ.
 – 
stackOverflow
31 Мар 2013 в 10:16