0

我最近将我的 XAMPP 从 1.8.1 升级到 1.8.3,其中包括将 php 从 5.4 升级到 5.5,以及将 mySQL 从 5.5 升级到 5.6。

升级后,我的 ajax 轮询脚本不起作用我的代码如下:

  //define setInterval in global variable, to be cleared later      

  myInterval = setInterval(function(){ 

     //this alert works
     alert('inside interval');
     $.ajax({
           url: "../php/pollScript.php",
           dataType: "json",
           data: {action: 'get_count' },
           success: function(data){
               //never reaches this function, alert is not seen
               alert('success');
           },
           error: function (xhr, ajaxOptions, thrownError) {
               alert(xhr.status);
               alert(thrownError);
           }
     )};
  }, 2000);

 //use jquery ajax form to submit form that invokes long running php script
 $("form").submit();

 //interval is cleared in success function of ajax form submit

很明显, setInterval 函数正在工作,但是 ajax 函数没有被执行,我确保使用session_write_close();在释放会话的长时间运行脚本中,更新前没有更改任何代码。对正在发生的事情有任何想法吗?我需要在php.ini中更改配置以允许轮询吗?

更新:添加错误处理程序后,我的错误状态为 0,想不出为什么会发生这种情况,因为我没有更改任何代码,我读到这可能是您的 ajax 请求在完成之前被取消的结果......还有chrome dev tools->Networking 选项卡中的 pollingScript.php 在服务器上没有命中

长时间运行的脚本也可以完美运行。

4

1 回答 1

0

我希望我可以在评论中清楚地发布这个,但它就在这里。

我强烈推荐使用console.log()代替,alert()因为它像这样非常有用:

//define setInterval in global variable, to be cleared later      

myInterval = setInterval(function(){ 

 //this alert works
 alert('inside interval');
 $.ajax({
       url: "../php/pollScript.php",
       dataType: "json",
       data: {action: 'get_count' },
       success: function(data){
           //never reaches this function, alert is not seen
           console.log(data);
       },
       error: function (xhr, ajaxOptions, thrownError) {
           console.log(xhr.status);
           console.log(thrownError);
       }
  )};
}, 2000);

//use jquery ajax form to submit form that invokes long running php script
$("form").submit();

//interval is cleared in success function of ajax form submit

此外,无论您使用什么浏览器,都可以通过“网络”选项卡成为最好的朋友。建议在刷新页面时打开此选项卡。

刷新页面时在您的网络选项卡中找到pollScript.php并单击它。

祝你好运!

于 2013-09-17T19:17:19.743 回答