问题描述
我对AJAX有一个奇怪的问题,我在页面加载时使用AJAX POST方法返回了对象映射。
我正在调试过程,有时调用该方法,而Java Servlet运行,有时不运行。
我已经正确地包括了JS导入,其他jQuery调用也可以正常工作。
我尝试了不同的探险家。
我改用GET方法,但还是一样。
有人遇到过同样的问题吗? 谢谢
我的代码:
AJAX:
$(document).ready(function(){
// here there is another ajax servlet call, and it's working fine all time.
$.get("ServletName", function(responseJson) {
//do some action
});
});
Servlet:
package packageName; //I keep it like that without a subfolder name that contains the servlets, doing so not to import the java classes located in the original package...would this be the problem?
@WebServlet(name = "ServletName", urlPatterns = {"/ServletName"})
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Map<Integer, ClassName> objectsTree = new TreeMap<>();
//adding objects to the map
String mapString = new Gson().toJson(objectsTree);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(mapString);
}
我对我的文件位置有疑问,我的JSP文件位于“ root \\ web \\”下。我的selvlet位于root \\ src \\ java \\ packageName \\ servlets \\
但是还是。 所有servlet都被调用并且没有问题,但是只有这个调用不能一直实现...如果我一次又一次地运行调试器,它将在某些尝试下工作。
1楼
我想我发现了自己的错误,我的servlet位于Java类根目录之后的子文件夹中。 但是,我保留了与Java类根相同的servlet包声明,而不是在包声明中添加子文件夹名称。
package packageName;
应该是
package packageName.servlets;
唯一让我保持这种状态的东西,在很多方面看来都还不错,但最终我因此而遇到了问题。
2楼
我猜您的代码没有等待文档准备就绪。 但是,不看代码就很难知道。