我怎么能发送从JavaScript到一个servlet的请求?

问题描述 投票:1回答:2

我有一个JavaScript中的.jsp文件。

如果我点击确定按钮,我调用JavaScript方法。这种方法检测的ID。

我想这个ID发送给我的servlet。在我的servlet我想与getParameter(id)的ID。

我已经实现这个我的本地机器上,而且运行良好。如果我的服务器部署我的源代码,JavaScript方法将被调用,而ID会被检测到,但该方法不将请求发送到我的servlet。

   <script language="text/javascript">


        function removeLink(){   
            var  id=''; 
            var tmpcounter=0;
            var check=0;
            for (var counter = 0; counter < (document.getElementsByName("inProject[]").length); counter++) {
                if (document.getElementsByName("inProject[]")[counter].checked) {   
                    tmpcounter = tmpcounter+1;
                 }
            }


          for (var zaehler = 0; zaehler < (document.getElementsByName("inProject[]").length); zaehler++) {
            if (document.getElementsByName("inProject[]")[zaehler].checked) {
                check++;
                if((check == tmpcounter) || (tmpcounter==1)){
                    id += 'id='+ document.getElementsByName("inProject[]")[zaehler].value;
                }else{
                    id += 'id='+ document.getElementsByName("inProject[]")[zaehler].value +' OR ';
                }

             }

          }
                    alert(id);
                    location.href='<%=request.getContextPath()%>/issues?action=uploaddeletelink&wherestatement=' + id;   

                    close();


        }

        //-->
    </script>

这是我的OK按钮:

<td align='right'><a class='funktion' href='javascript:removeLink();'>OK<IMG src="<%=request.getContextPath()%>/issuedb/system/layout/funktionpfeil.gif" width="14" height="9" border="0"></a></td>

我的服务器上,该函数将被调用,而id将被检测到。下面的代码行,其将请求发送到我的servlet,不然而起作用。

location.href='<%=request.getContextPath()%>/issues?action=uploaddeletelink&wherestatement=' + id;
java javascript jsp tomcat servlets
2个回答
-1
投票

使用AJAX来调用servlet的。得到的回应来自servlet的回来。

  var xmlHttpReq = false;


if (window.XMLHttpRequest) {
   xmlHttpReq = new XMLHttpRequest();
}

else if (window.ActiveXObject) {
    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpReq.open('POST', strURL, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 xmlHttpReq.onreadystatechange = function() {
    if (xmlHttpReq.readyState == 4) {
        alert(xmlHttpReq.responseText)
    }
}
xmlHttpReq.send();

-1
投票

使用jQuery AJAX为了这个目的,这是简单和方便。所有你需要做的是使用jQuery插件。

function removeLink(){   
     $.ajax({
     url: "<%=request.getContextPath()%>/issues?action=uploaddeletelink&wherestatement="+id,              
     type: "POST", 
     success: function(data){
      //If you want to return anything in jsp.
       } 
     });
 }

希望这可以帮助..

© www.soinside.com 2019 - 2024. All rights reserved.