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

时间:2015-08-08 02:37:19

标签: javascript java jquery ajax jsp

我对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文件位于&#34; root \ web \&#34; 我的selvlet位于root \ src \ java \ packageName \ servlets \

但是仍然。调用所有servlet并没有问题,但只有这个调用没有一直到达...如果我一次又一次地运行调试器,它会在一些尝试中起作用。

2 个答案:

答案 0 :(得分:1)

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

package packageName;

应该是

package packageName.servlets;

唯一能让我保持这种状态的东西,在很多方面似乎都很好,但最终我遇到了问题。

答案 1 :(得分:0)

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