这个XHR代码有什么问题?

时间:2014-06-22 17:09:22

标签: javascript ajax xmlhttprequest

这是我的第一个发出XHR请求的代码,尝试调试但无法找到故障所在。 我正在使用谷歌浏览器和wamp服务器。我使用的URL是我自己的计算机中的HTML文件

我很抱歉帮助我解决问题。 我期待什么结果?

我希望我的浏览器会打开localhost / CSS / Margins / margin.html

但是,当我点击“点击我!”时,页面就会变成空白。

<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
    <title>Project 1</title>
    <script type="text/javascript">
        var a;    //Creating an object for the request named "a"
        if(window.XMLHttpRequest)
        {
            a = new XMLHttpRequest();

        }
        else if(window.ActiveXObject)
        {
            a= new ActiveXobject("Microsoft.XMLHTTP");
        }
        function response()    //This is the function that I would use as callback function
        {
            if(a.readyState==4)
            {
                if(a.status==200)
                {
                    alert("perfect");
                }
                else
                {
                    alert("Getting improper response");
                }
            }
            else
            {
                alert("Not getting response");
            }
        }
        function open() //Making the request
        {
            a.open('GET', "localhost/CSS/Margins/margin.html", true);
            a.onreadystatechange = response;
            a.send(null);
        }


    </script>
    <span onclick="open();">Click me!</span> //This onclick event would call the function that would make the request.
</head>
<body>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

您的代码很好,但您输入的网址不是全局的,而是指向当前网页的相对路径。

将其更改为a.open('GET', location.protocol+"//localhost/CSS/Margins/margin.html", true);

答案 1 :(得分:0)

感谢您的帮助。

我犯的主要错误是打开函数的名称。它是一个关键字。 一旦我更改了它,浏览器就开始响应警报框。

我很感谢你的帮助。

PS-我用过:

a.open(&#34; GET&#34;,&#34; // localhost / CSS / Margins / margin.html&#34;,true);