Ajax请求成功但回调函数从未执行过

时间:2015-03-31 07:57:48

标签: php ajax extjs

我面临的问题是,我的一些ajax请求可能非常繁重,从某种意义上说它们会进行大量计算。在这种情况下,我可以在我的服务器代码中注册程序的完成(只需将一些调试消息放入文本文件),但在我的客户端代码中,我无法执行回调函数。例如:

Ext.Ajax.request({
      url:'computation.php', // it may take 5-10-20 or more seconds to complete
      loadMask:true,
      params:{...}, // some extra parameters
      method:'POST',
      success:function (result,request){
          alert("Done!!!"); // If the procedure takes too long, I do not see this echo
      }
});

我猜,问题的根源可能在结果值中,我应该从服务器端返回到客户端。可能应该有一些必要的论点(比如“成功”:“真实” - 我需要它吗?)或其他什么。

1 个答案:

答案 0 :(得分:1)

您有3种方法可以知道问题所在:

1)在你的extjs代码中添加一个失败:function():

        Ext.Ajax.request({
            url:UrlOfThePhpFile,
            method:'POST',
            params:{yourParamName:yourParamContent},
            success:function(response){
               console.log("Ajax call is a success")
               debugger;
            },
            failure:function(response){
               console.log("Ajax call failed")
               debugger;
            }
        });

在Chrome中打开开发工具,感谢"调试器;"你可以检查var"响应的内容"。它就像代码中的断点。

2)apache有一个错误日志。 http://www.cyberciti.biz/faq/apache-logs/

3)使用像phpStorm这样的IDE,你可以在php文件中加入一些断点,看看文件是否被javascript调用