XMLHttpRequest状态返回404

XMLHttpRequest status returning 404

本文关键字:返回 状态 XMLHttpRequest      更新时间:2023-09-26

我有一些来自互联网的代码,当我输入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,发现了同样的问题。

确保您的代码实际请求的是正确的URL。你可以使用大多数现代浏览器的开发工具来做到这一点,包括Chrome的"网络"选项卡。