XMLHttpRequest状态返回404

时间:2014-09-14 06:55:38

标签: javascript ajax xmlhttprequest

当我输入text input时,我从互联网上获得了一些更新我的网页的代码。

我的代码在

下面
function validate(field, query) {
    var xmlhttp;
    if (window.XMLHttpRequest) { // for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState != 4 && xmlhttp.status == 200) {
            document.getElementById(field).innerHTML = "Validating..";
        } else if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById(field).innerHTML = xmlhttp.responseText;
        } else {
            document.getElementById(field).innerHTML = "Error Occurred. <a href='index.php'>Reload Or Try Again</a> the page.";
        }
    }
    xmlhttp.open("GET", "validation.php?field=" + field + "&query=" + query, false);
    xmlhttp.send();
}

调试后我发现代码运行了两次(afaik)。第一次xmlhttp.readyState为1,表示正在设置请求。第二次它是4意味着它完成了。所以这就像预期的那样。

问题是它总是返回字段中的Error Occurred位。原因是xmlhttp.status保持状态编号404,这意味着找不到它。我不知道为什么它返回404.如果我使用的浏览器很重要,我使用的是最新版本的Safari。我还检查了最新版本的Chrome并遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

确保您的代码实际上是在请求正确的网址。您可以使用大多数现代浏览器的开发者工具执行此操作,包括Chrome的网络标签。