当前位置: 代码迷 >> Java Web开发 >> ajax刷新表格,该如何处理
  详细解决方案

ajax刷新表格,该如何处理

热度:4882   发布时间:2013-02-25 21:21:36.0
ajax刷新表格
用AJAX刷新表格数据,本地可以使用,远程地址时就不能用了,为什么?
比如我用http://localhost:8888/test就可以刷新
但是用IP地址就不行,比如http://192.168.1.142:8888/test,ip地址就是我电脑的IP
代码如下:
JScript code
      //设置每隔几秒刷新一次      window.setInterval("reloadTable()",1000);      var count = 0 ;      //刷新方法      function reloadTable(){           //固定格式         if(window.XMLHttpRequest){             xmlHttp = new XMLHttpRequest();         }else{             try{                 xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");              }catch(e) {              try{                  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");              }catch(e) {                alert("浏览器不支持");              }              }         }         count ++ ;         //访问URL xmlHttp.open(METHOD,URL);         var url = "http://localhost:8888/fioc/search.action?id="+(count+1)+"&"+"t="+Math.random() ;         xmlHttp.open("POST",url,true);         xmlHttp.send();         //不同状态触发的事件         xmlHttp.onreadystatechange = function(){             var state = xmlHttp.readyState;             var returnValue  ;               if(state == 4&& xmlHttp.status==200){                  //当状态为4时,说明服务器已处理完成,获取返回值                 returnValue = xmlHttp.responseText;                 //处理返回数据                 displayData(returnValue);              }         } ;     }     function displayData(data){         var table = document.getElementById("myTable") ;         if(data != null && data.length > 0){              //定义的格式为[x:x:x;y:y:y;z:z:z]每个元素以";"分隔             var arrayObj = data.split(";");             for(var i = 0 ; i < arrayObj.length ; i++){                var str = arrayObj[i];                //元素格式[行号:key:value](例如[1:id:123])                var valueArray = str.split(":");                var td = document.getElementById("td_"+valueArray[0]+"_"+valueArray[1]);                if(null != td){                    td.innerHTML = valueArray[2];                }             }                      //向table中插入一个TR         //    var newTR = table.insertRow(table.rows.length);        //    for(var i = 0 ; i < arrayObj.length ; i++){        //        var value = arrayObj[i] ;        //        //向TR中插入一个TD         //        var newTD = newTR.insertCell(i);         //        newTD.innerHTML = value.toString();        //    }          }     }


求高人帮忙。。。。

------解决方案--------------------------------------------------------
试试JQUERY的ajax请求吧.我好久没用过js的ajax了.太麻烦 又容易出错.都已经忘记怎么用了.
------解决方案--------------------------------------------------------
可能是ajax的跨域问题. 你浏览器输入框里面用的是localhost然后改成ip后浏览器认为是跨域访问.
------解决方案--------------------------------------------------------
var url = "http://localhost:8888/fioc/search.action?id="+(count+1)+"&"+"t="+Math.random() ;


你这地方的地址不要写死了,写成
var url = "./fioc/search.action?id="+(count+1)+"&"+"t="+Math.random() ;
试试

或者根据下面方法获取到根地址,在jsp页面适用:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

然后再
var url = "<%=basePath %>fioc/search.action?id="+(count+1)+"&"+"t="+Math.random() ;

------解决方案--------------------------------------------------------
var url = "http://localhost:8888/fioc/search.action?id="+(count+1)+"&"+"t="+Math.random() ;
当你用ip后 浏览器认为是跨域访问,把localhost也改成ip试试
  相关解决方案