Ajax------一个标签引发的血案

Ajax------一个标签引发的血案

 这几天写的一个页面,用到ajax,遇到了一些问题,感觉无比的纠结啊...但一切解决之后,感觉清爽不少啊。
1、Ajax+Form 提交方式的问题
      起初,我的form是如下写的:
      <form>
            ..........
           <input type='button' value='登录' onclick='postlogin()'>
     </form>

点击按钮,执行下面函数
function postlogin()
{
        var userinfo;
    userinfo='username='+document.getElementById('username').value;
    userinfo+='&password='+document.getElementById('password').value;
        var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
        xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
                    alert(xmlhttp.responseText);
            }
    }
    xmlhttp.open("POST",'a.jsp?mode=login&inajax=1',true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(userinfo);
}

结果发现AJAX提交的时候不是已post方式提交,总是已get方式提交。解决方法是在前面form上加上method=‘post’即可。
(而在我另外一个界面中,form中没添加却可以正常以post提交...晕啊)
2.接收到xml数据之后,经过处理,xml内容会直接显示在页面上(就像浏览器把返回的xml信息当作html处理一样,页面全部刷新,把内容解析到了界面上)
这个问题是最蛋疼的,搞的我很郁闷啊...但以前写的不会出现这种问题啊....于是和以前的仔细比较,一点点的查,才发现是最后提交按钮的原因
原来的提交按钮是<input type='button' .....>,而我为了给按钮加上个图片,我将其type改成了image,这就导致了上面所说的问题。至于具体什么原因恐怕要涉及到AJAX具体的内部原理了。

posted @ 2011-10-16 01:32  小二来壶酒  阅读(191)  评论(0编辑  收藏  举报