XMLHttpRequest异步请求后造成页面重新加载的问题
如题,用firebug调式,发现XMLHttpRequest请求能正常反回,但反回后页面就重新加载了,造成异步请求的内容丢失,又回到页面初始状态。代码如下:
前台HTML调用:
HTML code
<li><a id="basicInfo" href="" onclick="navjax(this)">基本资料</a></li>
JS:
JScript code
function navjax(obj) {
var url = "ajaxTest.aspx?xn=" + obj.id;
xh = new XMLHttpRequest();
// xh.onreadystatechange = function () {
// if (xh.readyState == 4 && xh.status == 200) {
// document.getElementById("text").innerHTML = xh.responseText;
// document.getElementById("slip").innerHTML = xh.responseText;
// }
// }
xh.open("POST", url,false);
xh.send();
document.getElementById("text").innerHTML = xh.responseText;
document.getElementById("slip").innerHTML = xh.responseText;
}
熟悉XMLHttpRequest的,帮忙解决下,谢谢啦!
------解决方案--------------------
------解决方案--------------------
onclick="navjax(this);return false"
------解决方案--------------------
反回后页面就重新加载了?那不是XMLHttpRequest的原因,你是不是哪个地方加了页面刷新?
而且后台页面处理异步请求的方法最好加上Response.End();
------解决方案--------------------href='javascript:;'
------解决方案--------------------没这样写的啊。
href="#" 或者增加 return false 都可以的。
------解决方案--------------------<a id="basicInfo" href="" onclick="navjax(this)">这是一个链接,为空的处理,不同的浏览器处理不一样,有的解释为当前页,有的解释为当前目录,看什么浏览器了
碰到这种空链接,我一般设置为
<a href="#0" 这样就不会有链接了,如果设置为href="#",点击后会回到页首,所以用#0,指向不存在的锚
同样的:<img src="">这样的标签会导致页面被加载2次(有的是加载目录,可能报403错误),但是这种通常页面看不出来,只有后台可以发现断点断了2次,或通过HttpWatcher,可以抓到2次请求