【问题标题】:XMLhttprequest issuesXMLhttp请求问题
【发布时间】:2015-07-22 03:34:09
【问题描述】:

我正在尝试处理不起作用的 xmlhttprequests。插入警报框时,我收到的状态为 0。无法弄清楚出了什么问题。

function submitChat() {
    if (form1.uname.value != '' && form1.msg.value != '') {
      var uname = form1.uname.value;
      var msg = form1.msg.value;
      var xmlhttp = new XMLHttpRequest();
      alert(xmlhttp.status);
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {
          document.getElementById('chatlogs').innerHTML = xmlhttp.responseText;
          }
      }
      xmlhttp.open("GET", "insert.php?uname=" + uname + "&msg=" + msg, true);
      xmlhttp.send();
    } else {
      alert("All Fields are Mandatory !!!");
      return;
    }
}
<form name="form1" action="#">`` Chatname:
  <input type="text" name="uname" />
  <br/>
  <textarea name="msg"></textarea>
  <a href="javascript: submitChat()"> Send</a> 
  <br/>
  <br/>
</form>

<div id="chatlogs">
  Loading Chat History !!!!!!!!!!
</div>

【问题讨论】:

  • 在执行 Ajax 时不要警觉。而是在 onreadystatechange 中执行window.console&amp;&amp;console.log(xmlhttp.status);
  • 我明白了,谢谢。我想做的是尝试找出代码不起作用的原因。因此,我认为通过获取 xmlhttp.status 的警报会给我一个更好的主意。

标签: javascript html ajax xmlhttprequest


【解决方案1】:

您应该在alert 之前执行.open()。所以你的代码变成了这样:

function submitChat() {
    if (form1.uname.value != '' && form1.msg.value != '') {

        var uname = form1.uname.value;

        var msg = form1.msg.value;
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET","insert.php?uname="+uname+"&msg="+msg,true);
        alert (xmlhttp.status);
        xmlhttp.onreadystatechange = function() {
            if(xmlhttp.readystate==4 && xmlhttp.status==200) {
                document.getElementById('chatlogs').innerHTML = xmlhttp.responseText;


            }

        }

        xmlhttp.send(null); 



    } else {
        alert("All Fields are Mandatory !!!");
        return;
    }
}

【讨论】:

  • 我会等到onreadystatechange里面的send或者console.log之后
  • 他需要的是在readystatechange之前设置这个ajax的类型。如果他提醒这一点,它将返回200
  • 谢谢,我仍然得到 0 的回报。我试图弄清楚为什么代码不能完全工作。因为我放了一个 xmlhttp.status 警报来尝试看看我是否可以获得一些信息。除了警报之外,代码本身还缺少什么吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多