gpt4 book ai didi

javascript - 获取 0 作为状态

转载 作者:太空狗 更新时间:2023-10-29 16:37:24 25 4
gpt4 key购买 nike

我有一个简单的 HTML 文件,它从服务器获取数据并将其输出:

<html>
<head>
<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();
function startRequest() {
xmlhttp.onreadystatechange = handleStateChange;
xmlhttp.open("GET", "http://new-host-2.home/test.html", true);
xmlhttp.send(null);
}
function handleStateChange() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert("The server replied with: ", xmlhttp.responseText);
}
else {
alert(xmlhttp.status);
}
}
}
</script>
</head>
<body>
<form>
<input type="button" value="Woooo" onclick="startRequest()"/>
</form>
</body>
</html>

服务器上的文件 test.html 如下所示:

<h1>Data received!</h1>

我一直收到 0 作为状态,尽管事实上在控制台中,它说一切都很好,并给出了 200 状态。当我将 if (xmlhttp.status == 200) 更改为 if (xmlhttp.status == 0) 时,它只是输出 The server reply with:。为什么是这样?我搞砸了吗?编辑:它可能只是我的服务器,我要切换到另一个服务器。 header 可能会有所帮助:

Response Headers
Accept-Ranges bytes
Connection Keep-Alive
Content-Length 13
Content-Type text/html
Date Sat, 09 Jun 2012 14:17:11 GMT
Etag "267749b-d-4c20a6d0ef180"
Keep-Alive timeout=15, max=100
Last-Modified Sat, 09 Jun 2012 13:52:22 GMT
Server Apache/2.2.19 (Unix) DAV/2
Request Headers
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Host new-host-2.home
Origin null
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0

最佳答案

alert 函数只需要一个参数,你要传递 2 个。

试一试:

var xmlhttp = new XMLHttpRequest(); 
function startRequest() {
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
alert("The server replied with: " + xmlhttp.responseText);
else
alert(xmlhttp.status);
}
}
xmlhttp.open("GET", "http://new-host-2.home/test.html", true);
xmlhttp.send();
}

如果还是不行,可能是安全问题:http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/282972/why-am-i-getting-xmlhttprequest.status0

如果它在 Safari 中有效,请尝试删除请求中的域以使路径成为相对路径。 Firefox 可能认为您正在尝试一些跨域的东西。

var xmlhttp = new XMLHttpRequest(); 
function startRequest() {
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
alert("The server replied with: " + xmlhttp.responseText);
else
alert(xmlhttp.status);
}
}
xmlhttp.open("GET", "/test.html", true);
xmlhttp.send();
}

关于javascript - 获取 0 作为状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961594/

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