function getMessage (data) {   
    var num1 = Math.round(Math.random()*10000000);
    var num = num1.toString().substr(0, 4);
    var json = '{"sec":' + sec + ',"usec":' + usec + ',"toSec":' + toSec + ',"toUsec":' + toUsec +  '}';
    var param = "?JSON=" + json + "&type=getMessage" + "&rand=" + num;
    $.ajax({ cache: false
           , type: "GET"
           , url: url + param
           , dataType: "json"
           , timeout : 20000
           //, data: {"JSON" : json , "type": "getMessage", "rand": num}
           , error: function (XMLHttpRequest, textStatus, errorThrown) {
              if (textStatus == "timeout") {
                 getMessage(json);
              }
              alert(XMLHttpRequest.readyState);
              alert(textStatus);
            }
           , success: function (data) {
                if (data.type == "getMessage") {
                   //$("#message").append("hello world" + "
");  
                   $("#message").append(data.message + "
");
                   getMessage(json);
                }
                if (data.type == "noMessage") {
                   getMessage(json);
                }
            }
          });
 }我写的是一个web聊天的功能每次当 data.type == "getMessage" 然后再次调用 getMessage() 函数 再$.ajax 后 XMLHttpRequest.readyState 就返回 0这是为什么啊。怎么解决啊???谢谢各位大侠解答啊。

解决方案 »

  1.   

    返回0,这不是表示尚未初始化,那就得找你对应初始化的模块了吧,是不是XMLHttpRequest这个初始化失败了~~
      

  2.   


    但是每次
    当 data.type == "noMessage"  然后再次调用 getMessage() 函数 再$.ajax 都没问题啊
      

  3.   

    函数本身就有问题
    没有看到参数data有任何作用
    json字符串有问题,肯定是无法解析的,当然因为该字符串没有解析使用过(因为data参数没有使用过),所以并没有引起异常,但其实是错的(属性值不加引号就会被认为是变量了,属性名倒是可以不加引号)至于ajax失败倒是看不出原因
      

  4.   

    $("#message").append(data.message + "
    ");
    首先,你说的那个我也不知道哪里有问题,但是这个分两行写,肯定会出错的吧,这个地方应该有语法错误的,第一行在解析的时候,就会被加上分号表示一句的结尾了~~还有
    var json = '{"sec":' + sec + ',"usec":' + usec + ',"toSec":' + toSec + ',"toUsec":' + toUsec +   '}';
    这个里面的这些参数,是字符串形式的吗,听说这个如果参量值是不加引号的话,有可能会产生未知的错误,如果是数字的话,这个地方生成的就不会有双引号~~只能说这些了,对这些不是神熟悉~~
      

  5.   


    json 构造 传到服务器没有 问题 服务器返回回来的json 形式是 {"type":"getMessage","message":"得到的消息"} 或者是{"type":"noMessage"}
      

  6.   

    你是文件方式打开时把?使用http://xxx方式浏览测试下传json格式一般使用 post方式
      

  7.   

    我遇到过这样的问题,别用get 或是 getJSON  用post就好了