cyoeki
2016-09-22 05:26
采纳率: 50%
浏览 1.5k
已采纳

ajax的xmlhttp.readystate一直等于2

 window.onload = function(){
        var xmlHttp = createXMLHttpRequest();
        xmlHttp.open("GET","<c:url value='/ProvinceServlet'/>",true);
        xmlHttp.send(null);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                var text = xmlHttp.responseText;
                var proArray = eval("("+text+")");
                //document.write(xmlHttp.readyState);
                //document.write(xmlHttp.status == 200);
                for(var i=0;i<proArray.length;i++){
                    var pro = proArray[i];
                    var option = document.createElement("option");
                    option.value = pro.pid;
                    var node = document.createTextNode(pro.name);
                    option.appendChild(node);
                    document.getElementById("p").appendChild(option);
                }
            }else {
                document.write(xmlHttp.readyState==4);
                document.write(xmlHttp.status == 200);
            }
        };
    };

xmlHttp.status == 200 输出是true,但是xmlHttp.readyState==4输出是false。

以下是servlet的代码:

 public class ProvinceServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        Dao dao = new Dao();
        List<Province> listProvinces = dao.findAllProvince();
        String jsonProvince = JSONArray.fromObject(listProvinces).toString();
        response.getWriter().print(jsonProvince);
    }

}
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 已采纳

    应该是ie下缓存了,加时间戳防止缓存

      xmlHttp.open("GET","<c:url value='/ProvinceServlet'/>?_"+new Date().getTime(),true);
    

    ajax状态

    已采纳该答案
    打赏 评论
  • 泰 戈 尔 2016-09-22 05:33

    感觉是服务器端数据处理的原因。

    打赏 评论
  • 泰 戈 尔 2016-09-22 05:54

    网页源码

    我意思是从这里面看那个ajax的url地址是什么。

    打赏 评论
  • cyoeki 2016-09-22 05:54

    图片说明

    打赏 评论
  • 泰 戈 尔 2016-09-22 05:59
     0 - (未初始化)还没有调用send()方法 
    1 - (载入)已调用send()方法,正在发送请求 
    2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 
    3 - (交互)正在解析响应内容 
    4 - (完成)响应内容解析完成,可以在客户端调用了 
    
    

    对症下药吧。

    打赏 评论

相关推荐 更多相似问题