Javascript 无法从JS表单调用servlet doPost方法
在从动态生成的Javascript表单调用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
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错误,但也许你会注意到;-)