ajax - Ajax 调用未在 tomcat 8 中命中 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(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");
}
});
异步和缓存似乎已经完成了魔法
解决方案
添加异步和缓存解决了我的问题
$.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");
}
});
推荐阅读
- c++ - 模板化函数中的参数类型强制为给定类型?
- javascript - 为什么我可以将某事定义为“让”?
- amazon-web-services - Spot 块实例与按需 AWS
- groovy - 如何从詹金斯管道中的常规输出中获取值
- c - 尝试实现 bzero 函数会导致分段错误
- python - 由于缺少 Microsoft.PythonTools.Django.Targets 文件,无法加载 Visual Studio 项目
- java - 使对象为空
- unix - awk 哈希对两个输入文件应用条件
- python-3.x - 将 apply() 从 Python2 移植到 Python3
- java - 如何在Java中按不同顺序(asc/desc)的多个字段对列表进行排序?