【问题标题】:Ajax Call not hitting servlet in tomcat 8Ajax 调用未在 tomcat 8 中命中 servlet
【发布时间】:2020-05-12 07:33:28
【问题描述】:

我有一个带有以下代码的 servlet

@WebServlet(urlPatterns = "/attachmentUpload.do")
@MultipartConfig
public class AttachmentUploadServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

if (operationName != null && operationName.equalsIgnoreCase("attachToSNOW")) {
                JSONArray runbookRows = new JSONArray(request.getParameter("runbook"));
                LOGGER.log(Level.INFO, "runbook rows:{0}", runbookRows.toString());
}
}
}

像这样从jsp调用ajax

 $.ajax({
                    url: "attachmentUpload.do",
                    method: "post",
                    data: {"operationName": "attachToSNOW",
                        "runbook": JSON.stringify(rowArray)

                    },
                    success: function (data) {
                        console.log("ajax called");
                    },
                    error: function (msg) {
                        console.log("Couldn't attach file");
                    }
                });

ajax 调用似乎没有命中部署我的应用程序的 servlet(tomcat 8),而在连接到 Netbeans 的本地 tomcat 中同样有效。

我完全不知道是什么问题。

坚持了几个星期

编辑 真正的问题是,当我从父 jsp 打开一个子 jsp 时。在子 JSP 中,我将一些数据转储到一个临时文件中,该文件稍后将被推送到 Web 服务,提到的 ajax 调用在子 jsp 中。而且我在 tomcat stdout(也是临时文件创建)中没有日志,因此我知道部分代码没有被访问。

只要我将 ajax 调用更改为下面,事情就开始工作了 :)

 $.ajax({
                    url: "attachmentUpload.do",
                    method: "post",
                     **async: false,
                    cache: false,**
                    data: {"operationName": "attachToSNOW",
                        "runbook": JSON.stringify(rowArray)
                    },
                    success: function (data) {
                        window.opener.log("ajax called");
                    },
                    error: function (msg) {
                        console.log("Couldn't attach file");
                    }
                });

异步和缓存似乎发挥了作用

【问题讨论】:

  • 您尝试过使用您网站的absolute path 吗?
  • 绝对路径如???
  • 浏览器开发者工具告诉你什么?
  • 编辑添加,浏览器开发工具帮助调试,我看到了我在ajax完成后从子jsp抽出来的父jsp日志

标签: ajax servlets


【解决方案1】:

添加异步和缓存解决了我的问题

$.ajax({
                    url: "attachmentUpload.do",
                    method: "post",
                     async: false,
                    cache: false,
                    data: {"operationName": "attachToSNOW",
                        "runbook": JSON.stringify(rowArray)
                    },
                    success: function (data) {
                        window.opener.log("ajax called");
                    },
                    error: function (msg) {
                        console.log("Couldn't attach file");
                    }
                });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多