java - 基于AJAX POST向JSP文件发送请求

标签 java ajax jsp servlets

我正在尝试向 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/

相关文章:

java - 如何在 Struts 2 中将 url 压入值堆栈

java - 当我 "Run Spring as JUnit Test"时,内部会发生什么?

java - 无法使用jsp将文件上传到服务器

java - 从 Criteria 获取 SQL

javascript - Phantomjs page.content 未检索页面内容

java - 从不同的 URL 但相同的域在 jsp 中加载图像?

java - TCP/IP 客户端向服务器发送多条消息

javascript - 从远程 html 页面加载 div 并将其附加到当前页面

javascript - 提交后重新填写表单后出现 Selenium StaleElementException

javascript - 进行ajax调用时的警报窗口