2012-01-18 3 views
9

Я пытаюсь изучить AJAX с JSP, и я написал следующий код. Кажется, это не работает. Пожалуйста, помогите:Простой AJAX с примером JSP

Это мой configuration_page.jsp

<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
    <script type="text/javascript"> 

     function loadXMLDoc() 
     { 
     var xmlhttp; 
     var config=document.getElementById('configselect').value; 
     var url="get_configuration.jsp"; 
     if (window.XMLHttpRequest) 
     { 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
      } 
     } 

     xmlhttp.open("GET", url, true); 
     xmlhttp.send(); 
} 
</script>   

</head> 

<body> 
    <h2 align="center">Saved Configurations</h2> 
    Choose a configuration to run: 
    <select name="configselect" width="10"> 
    <option selected value="select">select</option> 
    <option value="Config1">config1</option> 
    <option value="Config2">config2</option> 
    <option value="Config3">config3</option> 
    </select> 
    <button type="button" onclick='loadXMLDoc()'> Submit </button> 
    <div id="myDiv"> 
    <h4>Get data here</h4> 
    </div> 
</body> 
</html> 

Это мой get_configuration.jsp, который я пытаюсь получить доступ из кода AJAX выше:

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 

    </head> 
    <body> 

    <h4>Mee..</h4> 
    </body> 
</html> 
+0

Если результат get_configuration.jsp используется в качестве содержания DIV, то он не должен содержать ',' , '' , Он должен просто содержать '

'. Сделайте себе одолжение и используйте jQuery. –

+0

Также предлагаю использовать jQuery: он имеет более простой синтаксис и переносимость кроссбраузеров. – Dims

ответ

1

Вы ошибаетесь в файле "configuration_page.jsp". здесь в этом файле, функция loadXMLDoc() «s номер строки 2 должна быть такая:

var config=document.getElementsByName('configselect').value; 

потому, что вы объявили только атрибут name в вашем <select> тега. Поэтому вы должны получить этот элемент по имени.

После исправления этого, он будет работать без каких-либо ошибок JavaScript

12

я использовал jQuery AJAX для делать запросы AJAX.

Проверьте следующий код:

<html> 
<head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#call').click(function() 
      { 
       $.ajax({ 
        type: "post", 
        url: "testme", //this is my servlet 
        data: "input=" +$('#ip').val()+"&output="+$('#op').val(), 
        success: function(msg){  
          $('#output').append(msg); 
        } 
       }); 
      }); 

     }); 
    </script> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    input:<input id="ip" type="text" name="" value="" /><br></br> 
    output:<input id="op" type="text" name="" value="" /><br></br> 
    <input type="button" value="Call Servlet" name="Call Servlet" id="call"/> 
    <div id="output"></div> 
</body> 

0

loadXMLDoc функция JS должна возвращать ложь, в противном случае это приведет к постбэка.

Смежные вопросы