Firefox 17.0.1没有收到http响应

时间:2012-12-19 14:20:19

标签: jquery ajax firefox servlets httpresponse

我正在开发一个网站,它将使用jQuery 1.8.0的经典ajax请求发送到Java servlet(精确地称为Struts 1操作)。我应该收到杰克逊创建的json。

大多数情况下,一切都很正常,但有时候,Firefox 17似乎没有收到响应并挂起,直到我用Windows的任务管理器结束其进程。我可以在Firebug中看到请求已经发送,并且在OC4J的日志中我已经调用了我的服务并且发送了响应,但是没有收到响应。即使超时,也永远不会调用jQuery ajax错误方法,并且Firefox完全被阻止。

我尝试重启Firefox并禁用插件,但问题仍然存在。

最奇怪的是,这个问题不会发生在IE上,也不会发生在Chrome上。

除非被要求,否则我不会发布任何代码,因为我的代码很经典。

你们中有没有人遇到过这个问题吗?或者可能有一个关于它的线索?

感谢。

修改

我的代码是异步的,所以Firefox不应该像这样挂起,我不明白。

代码,问:

的Javascript

$.ajax({
    type : 'POST',
    url : 'calculate.do?action=career',
    timeout: 40000,
    data : {
    "data": JSON.stringify(obj)
    },
    success: function(json){
        // do stuff with json, like setting some field's values
    },
    error: function(xhr, ajaxOptions, thrownError){
        // error message somewhere in the page
    }
);

Struts行动:

    private static final String A_JSON_STRING = "{\"msg\" : \"success\", "
         + "\"code\" : \"0\"}";

    public ActionForward career(final ActionMapping mapping,
        final ActionForm form, final HttpServletRequest request,
        final HttpServletResponse response) throws Exception {

        PrintWriter writer = null;
        writer = response.getWriter();
        String json = request.getParameter("data");

        // do stuff with json then send a response 

        response.setContentType("application/json");
        writer.write(A_JSON_STRING);

        writer.flush();
        writer.close();

        // struts should return an action forward but as it's an ajax call,
        // there's no need to
        return null;

}

为了清晰起见,我正在跳过try / catch / finally,但它出现在我的代码中。

编辑2:我最终切换到Firefox 18(测试版),现在看来还不错......

0 个答案:

没有答案