使用Laravel中的AJAX取消请求时数据丢失

时间:2017-10-25 13:47:46

标签: javascript php jquery ajax

我在Laravel中使用ajax通过POST发送大量数据。 当我快速发送请求并将页面重定向到另一个页面时,当ajax调用被取消或中止时,数据会丢失。

我已经提到了以下流程:

  1. 快速发送ajax请求
  2. 然后在通过浏览器回复最新的ajax调用请求之前,我将重定向到另一个页面
  3. 然后我检查ajax调用发生时存储的数据。我发现数据丢失了。
  4. 以下是代码

    <script>
     var cssData = $('.css-textarea').val();
     $.ajax({
       url: '/save-data',
       type: 'POST',
       data: {cssData: cssData},
       success:function(response){
          //do something after success
       }    
     });
    </script>
    

    PHP / Laravel代码

    public function saveCssData(){   
       $data = Input::get();
       $cssData =  $data['cssData'];        
       //Do something to save data
        $db->cssData = $cssData;
        $db->save();
    }
    

    请不要假设确切的代码,因为我给出了一个例子。
    这段代码工作正常但是当我通过ajax发送快速调用并在获得响应之前,我重定向到另一个页面然后数据丢失。我已经设置了足够的post_max_size和其他配置,但仍然没有修复

    我通过ajax请求发送的输入示例

    {
     "testCss":
      " #class{background:#fff}../*big amount data */...
        #testDiv{color:#000}
       "
    }
    

    我在数据库中收到的输出示例

    {
     "testCss":
      " #class{background:#fff}../*big amount data */...
        #testDiv{col
    

    您可以看到输出中的数据丢失。这个问题有时会出现,但我注意到,当我快速请求ajax并通过重定向到另一个页面来中止请求时,它会出现,但不知道如何解决这个问题。

0 个答案:

没有答案