Ajax请求导致以下内容:无法加载资源:服务器响应状态为500(内部服务器错误)

时间:2017-09-10 14:20:04

标签: jquery ajax laravel laravel-5.2

我知道有很多相关的文章,我已经尝试了其他共享的大部分建议。以下是我的代码的部分列表

$(document).ready(function() {
    $("#cron").click(function(event) { 
        $('.update-body').html('<br />Performing updates...<br />')
        event.preventDefault();
        event.stopPropagation();
        var request = $.ajax({
           url: 'http://xx.xx.xx.xx/update/longprocessing',
           type: "GET",
           contentType: "application/json",
           beforeSend: function (xhr) {
           var token = $('meta[name="csrf_token"]').attr('content');

           if (token) {
             return xhr.setRequestHeader('X-CSRF-TOKEN', token);
           }
       },
       dataType: "json"
    });

    request.done(function(status) {
       var msg = "";
       if(status.msg == '1')
       {
           msg = '<div class="alert alert-success">Successfully updated.</div>';
       }
       else if(status.msg == '2')
       {
           msg = '<div class="alert alert-info">No updates</div>';
       }
       $('.update-body').html(msg);
   });

   request.fail(function(jqXHR, textStatus) {
     var acc = []
     $.each(jqXHR, function(index, value) {
       acc.push(index + ': ' + value);
   });
   $('.update-body').html('<div class="alert alert-danger">' JSON.stringify(acc) + '</div>');
   });
 });
});

Processing.php预计平均需要40分钟才能完成。这是问题,代码运行良好,当我在Windows 10平台上运行XAMPP时返回成功消息。

当我在XAMPP下将代码移动到Linux时,processing.php显示没有错误并且运行完全正常(因此php代码没有错)但是当我监视网络性能时,等待(TTFB)时间到第一个字节命中15分钟,出现以下错误消息:无法加载资源:在jquery ajax代码中的某处生成了状态为500(内部服务器错误)的服务器响应。我正在使用jquery1.12.3。

非常感谢任何帮助。

我有时也会意识到,我的php函数第一次调用,6分钟后调用,第二次调用,然后是503服务不可用。它不会发生在windows下的xampp中,而是发生在linux中。我正在使用laravel 5.2框架如下:

Route::get('/update/longprocessing', ['as' => 'UpdateProcess', 'uses' => 'Project\ProcessJobs@UpdateProcess']);

在我的ProcessJobs.php中,代码如下:

public function UpdateProcess () {
          Log::debug("Update Process started");
           $counter =0;
          //get path to linux folder
           ...
          //loop through folder to get all 35000 csvfiles
           foreach (xxx as xxx) {  
          //for each file, read content, process and write to a single common csv files.
              $counter++;
              Log::debug("counter value : " . $counter);
           }

         return response()->json(['msg'=>'1']);
}

日志文件显示以下内容:

Update Process started
counter value : 1
counter value : 2
counter value : 3
...
...
counter value : 10000
Update Process started    <--- this is the second time it is called
counter value : 10001     <--- counter still continue from previous.
counter value : 10002     <--- log file stop here and server return 503 service unavailable error.

0 个答案:

没有答案