无法从JS表单调用servlet doPost方法
Not able to call servlet doPost method from JS form
我在从动态生成的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调用中可能存在什么问题吗?
谢谢阿迪亚
您发送的数据不会相同 - 您的hiddeninputfield
字段应命名为 orderId
,并使用订单 ID 进行初始化。 或者,您可以解析 hiddeninputfield
请求参数,但这似乎有点愚蠢。
jQuery 调用正确发送orderId
表单值。
通过查看 servlet 中null
orderId
和/或查看浏览器发送的实际请求以查看正在发送哪些参数以及如何发送,调试这一点非常简单。
相关文章:
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 当值更改时,在servlet中自动获取textarea值,无需单击按钮
- servlet中的请求对象,而不是从jsp接收参数值
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- 在servlet中提交两个表单
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 如何从servlet获取数据到ajax成功
- 使用Jquery$.ajax将json数据传递给servlet(doPost)
- servlet和代理servlet之间的区别
- Servlet仅在单击JavaScript警报消息后重定向
- 在Servlet填充的表中选择多行
- 如何区分javascript中的servlet响应
- 需要确认我对Servlet vs RESTful网页的理解's的差异
- 为什么我得到responseText(通过Ajax从Servlet到javaScript)和额外的字符
- 将jsp重定向到servlet,然后重定向到下一页
- 无法从JS表单调用servlet doPost方法
- 如何从javascript函数调用servlet doPost方法
- 在javascript中调用servlet doPost方法
- 我如何在doPost()中的servlet中读取来自JavaScript的传入JSON