如何通过ajax调用来调用JS函数

时间:2013-10-04 20:39:59

标签: javascript jquery ajax jsp

我想通过ajax post调用调用jsp文件。所以我已经完成了以下代码 -

  xmlhttp=new XMLHttpRequest();

   xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {  
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
   }
   }

   var params = "report_id=0&id=1234567890";
  xmlhttp.open("POST","/test/jsp/test.jsp",true);
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

      xmlhttp.setRequestHeader("Content-length", params.length);
      xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.send(params);
   }
   </script>
    </head>
<body onload="loadXMLDoc()">
 <div id="myDiv"></div>

现在test.jsp如下所示 -

  <html>  
  <head>
   <script language="JavaScript">
   function hello()
   {
   alert("Hello");
   //Do my stuff
    }
   </script>
     <title>test Page</title>

  </head>
    <body topmargin="0" leftmargin="0" onload="hello()">
  <form name="mainForm" >
  </form>
  </body>
  </html>

问题是,打开我的第一个html页面时,我没有收到警告信息。这里有什么问题,需要做什么?

2 个答案:

答案 0 :(得分:2)

不使用onload函数,而是使用ready函数作为

    $( document ).ready(function() 
    {
        //here you can call hello function
    })

答案 1 :(得分:0)

当你像这样进行ajax调用时,你不会执行javascript。

一旦进行了ajax调用,你应该在主页上触发一个不在ajax页面上的函数

 $.ajax({
    type: "POST",
    url: "test.jsp",

    success: function(){
        hello();
    },
    error: function(){
        alert("error");
    }
});
function hello()
{
}