用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试试