AJAX post方法,有时在页面加载时触发,有时不触发

AJAX post method, sometimes is triggered on page loading and sometimes not

本文关键字:加载 post 方法 AJAX      更新时间:2023-09-26

我有一个奇怪的问题与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文件位于"根'web'"下我的servlet位于root'src'java'packageName'servlet '

但仍然。所有的servlet都被调用了,没有问题,但只有这个调用没有一直到达…如果我一次又一次地运行调试器,它将在一些尝试工作。

我想我发现了我的错误,我的servlet位于Java类根后的子文件夹中。但是,我保持servlet包的声明引用与Java类根相同,而不是将子文件夹名称添加到包声明中。

package packageName;

应该是

package packageName.servlets;

唯一让我保持这种方式的是,事情在很多方面看起来都很好,但最终我遇到了问题。

我猜您的代码没有等待文档准备好。但是如果不看你的代码,很难知道。

相关文章: