【问题标题】:Not able to call servlet doPost method from JS form无法从 JS 表单调用 servlet doPost 方法
【发布时间】:2012-06-12 11:08:09
【问题描述】:

我在从动态生成的 Javascript 表单调用 servlet doPost 方法时遇到问题。

var form = document.createElement("form");

    form.setAttribute("action", 'cisco-fetch-devices');
    form.setAttribute("method", 'POST');

    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");

    hiddenField.setAttribute("name", 'hiddeninputfield');
            hiddenField.setAttribute("value", data);

    form.appendChild(hiddenField);
    document.body.appendChild(form);

    form.submit();

但是我可以从 jquery ajax 调用中调用相同的 servlet ''cisco-fetch-devices':

    $.post("cisco-fetch-devices", { orderId : data},
    function(data) {
    alert("Data Loaded: " + data);
    });

JS动态表单提交正在生成'File not found error'

这是我的 doPost 方法:

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {



            response.setContentType("text/csv");
            response.setHeader ("Content-Disposition", "attachment;filename=\"tableincsv.csv\"");

             String orderId = request.getParameter("orderId").toString();
             java.io.PrintWriter out = response.getWriter();
             out.print("TEST DAta");


        }

能否请您告诉我在传统的 JS POST 调用中可能存在什么问题?

谢谢, 阿迪亚

【问题讨论】:

  • 我不确定可能是肯定的。但是自从我在这里发布以来已经有很长时间了。我今天确实得到了几个快速的答案,包括你的。
  • 您可以返回并检查您的问题,看看它们是否已经得到了答案——只要它确实回答了问题,接受答案永远不会太晚。
  • JS 动态表单提交正在生成“找不到文件错误”:您能提供更多详细信息吗?像 URL 和详细消息(如果有的话)(听起来像 404 错误,但也许你会注意到 ;-))

标签: javascript jquery servlets


【解决方案1】:

您发送的数据将不一样——您的hiddeninputfield 字段应命名为orderId,并使用订单ID 进行初始化。或者,您可以解析 hiddeninputfield 请求参数,但这似乎有点傻。

jQuery 调用正确地发送了一个orderId 表单值。

通过查看 servlet 中的 orderIdnull 和/或查看浏览器发送的实际请求以查看发送了哪些参数以及如何发送来调试它会非常简单。

【讨论】:

  • 感谢您的建议。已修改代码。但错误仍然存​​在'Http 500 internal server error' 页面未找到。有输入吗?
  • @AdityaR 你需要调试。确保请求相同。看看doPost 中发生了什么。正常的调试过程——我看不到你服务器的日志,所以我不知道是什么导致了 500 响应。
猜你喜欢
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 2015-08-24
  • 2012-02-27
  • 2011-02-01
  • 1970-01-01
相关资源
最近更新 更多