gpt4 book ai didi

ajax - AJAX问题: server is not returning proper status code in the event of a error

转载 作者:行者123 更新时间:2023-12-03 08:01:50 26 4
gpt4 key购买 nike

在我的网站上为AJAX脚本设计错误处理机制时,我发现服务器在发生错误时返回的唯一状态码为0(或“未定义”)。即使当我通过请求不存在的文件有意创建404错误时,服务器返回的唯一错误代码也是0。我相信此问题是由网络托管服务器(www.000webhost.com)引起的它将404错误重定向到http://error404.000webhost.com/吗?但是,我需要找到一种从服务器的响应中获取正确的错误代码的方法,以便将错误的信息反馈给用户……所以我的问题是:如何使服务器返回正确的状态代码,还是如果那不是问题:我的代码有什么问题?

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==4) {

alert(xmlhttp.status); //this alert box shows 200 normally, but during a error only shows 0

if (xmlhttp.status==200) { // 200 = OK, process result

//stuff for processing the result (when there is no error)

}
else { // error handling (creates a jgrowl notification showing the status code)
$('#jGrowl-container').jGrowl('AJAX Error Code: ' + xmlhttp.status', {sticky: true, theme: 'error'});
}
}
}
xmlhttp.open("POST", "process.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("&s="+ScoutID + "&pw="+pword + "&rt="+RequestType + RequestText);
}

最佳答案

可能由于不同的原因,您没有获得适当的http状态代码作为响应。

  • 请与您的托管服务提供商联系,以了解他们是否正在处理或已为此定制了Web服务器。您可以在其控制面板中进行检查,也可以咨询其服务台。
  • 在404的情况下,您的服务器正在重定向,它可能不会让浏览器将其跟踪为404,而是将其跟踪为302或303(重定向)。很少有托管公司这样做。

  • 我也注意到您已经在使用jQuery,所以为什么不也将其用于ajax调用。它运作良好。您可以在 http://api.jquery.com/category/ajax/上查看

    关于ajax - AJAX问题: server is not returning proper status code in the event of a error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7218133/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com