Ajax请求 - > request.readyState为空

时间:2013-06-09 12:28:32

标签: javascript html ajax

我想制作一个JS Ajax请求,但它不起作用。 我写了这段代码:

var i=0;
function send()
{
    var request = new XMLHttpRequest();
    request.open("GET", 'support.html', true);
    request.send(null);
    request.onreadystatechange = interpretRequest;
    i++;
    document.getElementById("debug").innerHTML=document.getElementById("debug").innerHTML+i;


}

function interpretRequest() {
    document.getElementById("answer").innerHTML=document.getElementById("answer").innerHTML+"answer received";
    document.getElementById("answer").innerHTML=document.getElementById("answer").innerHTML+request.status;
    document.getElementById("answer").innerHTML=document.getElementById("answer").innerHTML+request.readyState;
    switch (request.readyState) {
        // if readyState == 4 and status == 200 
        case 4:
            document.getElementById("Antwort").innerHTML=document.getElementById("Antwort").innerHTML+" answer received and state 4";

            if (request.status != 200) {
                alert("Error"+request.status);
            } else {

                var content = request.responseText;
                // write content
                document.getElementById("content").innerHTML = content;
            }
            break;
        default:
            break;
    }
}

函数send由每个s的intervall调用。我看到这是有效的,因为 nummers出现在调试div中。函数interpretRequest也被调用。出现字符串“answer received”,但没有包含request.status的打印输出。此外,永远不会输入案例4,内容div保持为空。

HTML文件是:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test</title>

<script type="text/javascript" src="code.js"></script>
</head>
<body>
<div id="debug">Debug:</div>
<br /><hr />
<div id="content">HTML:</div>
<br /><hr />
<div id="answer">answer:</div>
</body>
</html>

support.html位于同一个文件夹中,它包含:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h3>It works It works It works It works It workIt works</h3>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

request不是全局的,因此您无法通过interpretRequest函数访问它。

改为使用this