0

我刚刚开始在 W3Schools 网站上学习 ajax。在W3Schools.com 页面上的 Try it editor 上,当我尝试以下代码时,我得到了正确的响应,正如人们可以从代码中所期望的那样。您也可以尝试将代码复制并粘贴到给定的链接页面“提交代码”上,单击“响应中的更改内容”按钮。

 <!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 文件中尝试相同的代码并单击“更改内容”按钮时,我会按此顺序更改竞争(请忽略类型错误)

  • 服务器连接建立
  • 请求已发送。

之后没有任何反应。我已连接到 Internet,也可以在浏览器 (Firefox) 中打开链接。我该怎么办?

4

1 回答 1

0

您无法使用本地 html 文件中编写的代码中的 ajax 访问另一个域地址。跨域 ajax 请求要求您使用jsonp来访问该数据。

在第一种情况下,由于您在发出 ajax 请求时已经在 w3schools 域内,因此它将起作用。

于 2013-03-31T06:03:52.800 回答