2013-10-21 140 views
0

我有一个jsp文件与Javascript。如何从javascript向servlet发送请求?

如果我点击OK按钮,我会调用一个JavaScript方法。这个方法检测一个id。 我想将这个ID发送到我的servlet。在我的servlet中,我想用getParameter(id)得到id:

知道我的问题: 我已经在我的本地机器上实现了它,它的功能很好。但是如果我在服务器上部署我的Coude源码,那么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; 
+0

如果您提醒此值'<%= request.getContextPath()%>',您会收到什么?如果它在本地运行良好,则需要检查你的servlet路径。 –

+0

请详细说明问题。你需要检查是否有空。检查铬或mozilla中的元素,并善意显示确切的错误。 – shikjohari

回答

0

为此目的使用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. 
     } 
    }); 
} 

希望这有助于..

0

使用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();