我正在尝试向 Java servlet 发送 post 请求,根据该值执行查询,并将信息发送到 jsp 文件。查询是从文本框中输入的,当用户按回车键时,我需要跳转到新页面来显示查询的值。
这是我对 servlet 的发布请求:
$.ajax({
"type": "POST",
// generate the request url from the query.
// escape the query string to avoid errors caused by special characters
"url": "Search",
"data": {query : query},
"success": function(data) {
console.log("normal search successful");
},
"error": function(errorData) {
console.log("lookup ajax error")
console.log(errorData)
}
})
我收到 AJAX 帖子:
String title = request.getParameter("query");
//执行操作以获得结果...
然后将请求转发到 JSP 页面:
request.getRequestDispatcher("movielist.jsp").forward(request, response);
我没有收到任何错误,但屏幕没有重定向到我的应用程序中的新页面...
我在这里错过了一些重要的事情吗?
最佳答案
没有任何反应,因为您执行 AJAX 调用 - 请求发生在页面后台,因此当 ajax 收到来自 JSP 的响应时 - 它保持“在后台” - 成功处理程序被触发。
您可以做的 - 是进行常规表单提交 - 然后按照您提到的方式从 JSP 导航。
否则 - 如果您希望保留 AJAX,您可以在成功处理程序中手动执行重定向:
"success": function(data) {
window.location = "<your URL here>";
...
要重定向到的 URL 可以从 JSP 传递,该 JSP 可以返回 json 对象。希望这会有所帮助。
关于java - 基于AJAX POST向JSP文件发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49175495/