Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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
Javascript Ajax调用(使用jquery)在5分钟后不会得到更多响应_Javascript_Jquery_Ajax_Jsp_Tomcat - Fatal编程技术网

Javascript Ajax调用(使用jquery)在5分钟后不会得到更多响应

Javascript Ajax调用(使用jquery)在5分钟后不会得到更多响应,javascript,jquery,ajax,jsp,tomcat,Javascript,Jquery,Ajax,Jsp,Tomcat,事实上,我有一个JavaScript应用程序(jQuery),它正在向一个Java函数发送请求,该函数应该将数据(成功案例)发送回我的ajax函数。 在成功案例中,我继续我的申请;在发生错误的情况下,我停止我的过程并向用户显示错误消息 但是,当Java代码需要5分钟以上的时间来发送对我的Ajax调用的响应时,这个(Ajax代码)不再(work/respond/go-on/)得到任何响应 我尝试将超时限制设置为600000毫秒(10分钟),但我仍然遇到同样的问题(并且没有任何错误消息或输出,这可能

事实上,我有一个JavaScript应用程序(jQuery),它正在向一个Java函数发送请求,该函数应该将数据(成功案例)发送回我的ajax函数。
在成功案例中,我继续我的申请;在发生错误的情况下,我停止我的过程并向用户显示错误消息

但是,当Java代码需要5分钟以上的时间来发送对我的Ajax调用的响应时,这个(Ajax代码)不再(work/respond/go-on/)得到任何响应

我尝试将超时限制设置为600000毫秒(10分钟),但我仍然遇到同样的问题(并且没有任何错误消息或输出,这可能对我有所帮助)

因此,如果有人知道这个问题的根源,我将不胜感激

下面是一段代码,如果可以让它更清楚的话:

JSP
当您使用HTTP时,千万不要期望连接时间超过半分钟

使用WebSocket或Comet(长轮询)

请看,有许多方可能会决定停止您的连接:

  • web浏览器、防火墙/路由器/isp、web服务器(如Apache)、服务器脚本语言(如PHP)

我在PHP端禁用此功能的唯一一次是当我希望PHP在用户停止连接后仍能继续运行时(顺便说一句,我已经启用了另一个设置)。

如果没有一些代码,我不确定我是否能帮上忙,但您是否尝试过检查触发ajax调用的事件?有一次我犯了一个愚蠢的错误,在keydown上发送了一个ajax请求,后来我发现我需要使用keydown,而不是keydown,因为这是在textbox的值设置为text+最近输入的键时触发的事件。 因此,您可以尝试在jQuery中设置密钥或更改事件。如果这是在本地主机上,这不是一个好迹象……首先确定是什么导致了问题,前端还是后端

要做的事情: 1) 更改jQuery中的事件类型

$("#elem").live("keyup",function() {//send req});

2) 检查apache日志。如果你的电脑是ubuntu或类似的,你可以转到/var/log/apache2/error.log

任何代码?服务器端功能?您的服务器端持续一分钟以上?您可能应该对此进行优化,因为正如@Christian所响应的,任何请求都不应该超过30秒……您是否设置了onerror处理程序来获取Ajax调用的错误?你有没有和费德勒或查尔斯这样的代理人一起看电话?我很乐意帮忙,但规则不是我自己定的。我对您的代码一无所知,但如果这是一个常规的ajax调用,那么除了用其他东西替换它之外,没有其他方法了。问题是,我正在开发一个已经建立起来的web门户,可能有很多东西需要修改……据我所知,他有意发送持续时间这么长的请求。
@RequestMapping(value = "/doValidation", method = RequestMethod.GET)
public String processValidationResults(HttpServletRequest request, HttpServletResponse response,
        @RequestHeader("Connection") String conn) {
    ValidationResult validationResult = null;
    JSONObject resultJson = new JSONObject();

    HttpSession session = request.getSession();
    JSONObject progressMap = (JSONObject) session.getAttribute("progressMap");
    String uploadedFilePath = progressMap.getString("filePath");
    String realMimeType = progressMap.getString("realMimeType");
    long fileSize = progressMap.getLong("fileSize");
    String ctxPath = request.getContextPath();

    // INVOKE the VALIDATION ENGINE
    try {
        validationResult = validationEngineService.getValidationResult(uploadedFilePath, ctxPath);
        resultJson = JSONObject.fromObject(validationResult);
    } catch (Exception e) {
        validationResult = null;
        resultJson.put("errorMsg", e.toString());
    }

    try {
        response.getWriter().print(resultJson);
        response.flushBuffer();
    } catch (Exception e) {
    }

    return null;
}
$("#elem").live("keyup",function() {//send req});