1

我是学习 AJAX 的新手,并且停留在第一个程序中。尝试调试但无法这样做。

下面是我的代码片段

----------input-ajax.html------

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>HTML PAGE</title>
<script type="text/javascript">
    var request=null;
    function createRequest(){
        try{
            request= new XMLHttpRequest();
        )catch(e){
            try{
                request=new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                try{
                    request= new ActiveXObject("Microsoft.XMLHTTP");
                }catch(failed){
                    request=null;
                }
            }
        }
        if(request==null){
            alert("Error Creating Request Object");
        }
    }
    function getName(){
        alert("getname called");
        createRequest();
        var url = "showName-ajax.jsp";
        request.open("POST",url,true);
        alert("before");
        request.onreadystatechange = updatePage;
        alert("after");
        request.send(null);
    }
    function updatePage(){
        //var newName= request.getResponseHeader("r1");
        var newName= request.responseText;
        var name1 = document.getElementById("name");
        replaceText(name1,newName);
    }
    function replaceText(el, text) {
          if (el != null) {
            clearText(el);
            var newNode = document.createTextNode(text);
            el.appendChild(newNode);
          }
    }

    function clearText(el) {
        if (el != null) {
            if (el.childNodes) {
              for (var i = 0; i < el.childNodes.length; i++) {
                var childNode = el.childNodes[i];
                el.removeChild(childNode);
              }
            }
        }
    }
</script>
</head>
<body>
<h1>WELCOME <span id="name"> GUEST</span></h1>
<form method="POST">
<input type="text" name="t1">
<input type="button" value="Show Name" onclick="getName();"/>
</form>
</body>
</html>

----------showName-ajax.jsp------------

<%
    String s1=request.getParameter("t1");
    response.setContentType("text/plain");  
    response.setCharacterEncoding("UTF-8"); 
    response.getWriter().write(s1);       // Write response body.
 %>

但是当我运行程序(单击按钮)时,什么也没有发生。甚至没有出现调用 getName 函数的警告消息。请帮忙!!!!

4

3 回答 3

0
change )catch(e){  to }catch(e){

但是为什么每次单击按钮时都创建请求对象?您只需要在页面加载事件中调用一次“createRequest()”。

于 2012-08-17T18:06:12.660 回答
0

错字:

)catch(e){

应该

}catch(e){

这将在浏览器的控制台中显示为错误。如果事情没有按应有的方式工作,请务必先检查。

于 2012-08-17T17:43:39.610 回答
0

你有一个 ) 而不是一个 } 这里:

try{
    request= new XMLHttpRequest();
)catch(e){

所以你的函数永远不会被定义。

于 2012-08-17T17:43:55.020 回答