我的环境是ajax+c#.net
我用iframe可以执行但是浏览器一直显示进度条我就想把它改成用ajax来连接
可是ajax一直只能连一下,不能取得服务器传来的消息我的代码是
服务器端protected override void Render(HtmlTextWriter writer)
    {
        base.Render(writer);
        Response.Buffer = true;
        bool isOutput = false;        Response.Write("");        Response.Flush();
        int lastsecond = 0;
        while (Response.IsClientConnected)
        {
            Thread.Sleep(1000);
            if (DateTime.Now.Second != lastsecond && !isOutput)
            {                lastsecond = DateTime.Now.Second;                String msg = "wait msg...";                Response.Write("{'msg':'" + msg + "'}");
                Response.Flush();
                isOutput = true;
            }
            else
            {
                isOutput = false;
            }        }
    }
客户端
$.ajax(
{
timeout:1000*5,
async :false,
type: "get",
cache:true,
data:{t:1},
url: Cfg.ajaxUrl+"getMsg.aspx",
beforeSend: function(XMLHttpRequest)
{
//
},
success: function(data, textStatus)
{
alert(data.msg)
},
complete: function(XMLHttpRequest, textStatus)
{
//HideLoading();
alert(2)
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
//请求出错处理
alert(errorThrown)
}
});
不知道是服务端的问题 还上js的问题 知道的朋友帮帮忙,先谢谢各位 了

解决方案 »

  1.   

    有报错吗?
    直接alert(data)呢?
      

  2.   

    如果alert(data)有东西的话.
    加个dataType : "json",
    应该就是你要的东西了.
      

  3.   

    还是不行啊我换了下JS代码是网上一个牛人写的,可是我一运行就死循环var xmlhttp = CreateXMLHttpRequest();
    function ConnectServer()
    {
    xmlhttp.open("POST",imCfg.ajaxUrl+"WebIM/getIMsg.aspx",true);//建立异步通信     
    //xmlhttp.setRequestHeader("Content-Type","multipart/x-mixed-replace;boundary;charset=utf-8");
    var m=xmlhttp.send("当前浏览起的标识");
    }
    xmlhttp.onreadystatechange = function()
    {
             if(xmlhttp.readyState == 4) 
        {
        //判断返回值是否正常
           if(xmlhttp.status == 200)
                {
                                //执行你的方法
                 var s=xmlhttp.responseText;//获取服务器发过来的信息
     $('#ff').html(s)
               //执行你处理该事件的相关代码
           } 
        }
    setTimeout(ConnectServer,100);//重新建立下一次连接
    }
      

  4.   

    JS没报错的话就是服务器那边的代码有问题了.
    你调试一下.有没到你MSG那.
      

  5.   

    这个是长连接的,服务器没有错误,只是不知道协议或缓存什么的做对没,那段代码就是我上边的那一段ajax不能一直连着这个
    我在网上找了个php的comet 他的那个就没问题 不过我始终没搞明白是怎么回事,web.qq.com 他是也用ajax+push的 只是不知道怎么处理的
      

  6.   

    但是没报错的话.应该不是JS的问题哦.
    直接alert(data)又不行.证明没拿到数据.
      

  7.   

    while (Response.IsClientConnected)
    把这段去掉试下