Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从JS表单调用servlet doPost方法_Javascript_Jquery_Servlets - Fatal编程技术网

Javascript 无法从JS表单调用servlet doPost方法

Javascript 无法从JS表单调用servlet doPost方法,javascript,jquery,servlets,Javascript,Jquery,Servlets,在从动态生成的Javascript表单调用servlet doPost方法时,我面临一个问题 var form = document.createElement("form"); form.setAttribute("action", 'cisco-fetch-devices'); form.setAttribute("method", 'POST'); var hiddenField = document.createElement("input"); hi

在从动态生成的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动态表单提交正在生成“未找到文件错误”

以下是我的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调用中可能存在什么问题吗

谢谢,
Aditya

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

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


通过查看servlet中的
orderId
null
,和/或通过查看浏览器发送的实际请求,查看发送的参数以及发送方式,可以非常简单地进行调试。

感谢您的建议。我们修改了代码。但错误仍然存在“Http 500内部服务器错误”未找到页面。有输入吗?@AdityaR您需要调试。确保请求是相同的。查看
doPost
中发生的情况。正常的调试过程——我看不到服务器的日志,所以我不知道是什么导致500响应。我不确定是否是。但是我已经很久没有在这里发帖了。我今天得到了几个快速答案,包括你的。你可以回去检查你的问题,看看它们是否是答案——接受答案永远不会太迟,只要它确实回答了问题。JS dynamic form submit正在生成一个“文件未找到错误”:你能提供更多细节吗?比如URL和详细信息(听起来像是404错误,但也许你会注意到;-)