【问题标题】:How can I send a request from JavaScript to a servlet?如何从 JavaScript 向 servlet 发送请求?
【发布时间】:2013-10-29 16:48:15
【问题描述】:

我有一个带有 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>

这是我的确定按钮:

<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;

【问题讨论】:

  • 如果您提醒此值&lt;%=request.getContextPath()%&gt;,您会收到什么?如果它在本地运行良好,您需要检查您的 servlet 路径..
  • 请详细说明问题。您需要检查某些内容是否为空。检查 chrome 或 mozilla 中的元素并显示确切的错误。

标签: java javascript jsp tomcat servlets


【解决方案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.
       } 
     });
 }

希望这会有所帮助..

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      相关资源
      最近更新 更多