Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax调用未命中Tomcat8中的servlet_Ajax_Servlets - Fatal编程技术网

Ajax调用未命中Tomcat8中的servlet

Ajax调用未命中Tomcat8中的servlet,ajax,servlets,Ajax,Servlets,我有一个带有以下代码的servlet @WebServlet(urlPatterns = "/attachmentUpload.do") @MultipartConfig public class AttachmentUploadServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws Servlet

我有一个带有以下代码的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(Tomcat8),而同样的调用在连接到Netbeans的本地tomcat中有效

我完全不知道是什么问题

这件事已经坚持了好几个星期了

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

当我将ajax调用更改为以下内容时,一切都开始起作用:)


async和cache似乎完成了神奇的工作

添加async和cache解决了我的问题

$.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");
                    }
                });

你试过你网站的绝对路径吗?绝对路径如中所示?我试过在本地tomcat上部署。效果很好。问题出在部署应用的服务器上。浏览器开发工具告诉你什么?添加了编辑,浏览器开发工具帮助调试,在ajax完成后,我看到了从子jsp中抽取的登录父jsp
$.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");
                    }
                });