我打算在JavaScript中调用一个函数,然后在单击<input type="image">
后调用一个Servlet。
JSP:
<head>
<script type="text/javascript">
function callServlet() {
document.location.href="test-servlet.jsp";
}
</script>
</head>
<body>
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
...
<input type="image" name="submit"
src="https://www.paypalobjects.com/webstatic/en_US/btn/btn_buynow_pp_142x27.png"
onclick="callServlet()" alt="PayPal - The safer, easier way to pay online!">
</form>
</body>
Servlet(test-servlet.jsp
):
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>TestServlet called successfully!</h1>");
}
背景根
http://localhost:8080/mysite/test-servlet.jsp
但是,单击图像按钮时没有任何反应。我是JavaScript的新手。
答案 0 :(得分:1)
试试此代码
<a href="#" onclick="callServlet()"><img
src="https://www.paypalobjects.com/webstatic/en_US/btn/btn_buynow_pp_142x27.png"
alt="PayPal - The safer, easier way to pay online!"></a>
编辑:
最后我们发现应该在没有扩展名的情况下映射servlet,并使用doGet
方法从javascript获取请求。
答案 1 :(得分:1)
我可以在你的jsp中看到多个错误。
首先,
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
并使用img
标记button
作为罗马说
在提交表单时调用action
中的网址
所以尝试用,替换它,
<form action="./test-servlet" method="post">
现在使用您的JavaScript,
您无法使用window.location.href
发出POST
请求。检查pass post data with window.location.href
<script type="text/javascript">
function callServlet() {
document.forms[0].submit;
}
</script>