2016-07-06 16 views
0

私は何ができますか?私は見つけた1000のヒントをすべて試しましたが、何も効果がありませんでした。 私は常に "内部サーバーエラー"を取得します。Laravel 5.2 Ajax「内部サーバーエラー」

のroutes.php:

Route::post('/myurl', [ 
     'uses' => '[email protected]', 
     'as' => 'myurl', 
    ]); 

my.blade.php:私がしたいことは、私は "Internal Server Error" を得た理由

私の1000番目の質問MyControllerする@ myurlを呼び出すことであることであることを

<meta name="csrf-token" content="{{ csrf_token() }}"> 
<script>var url = "{{ URL::to('/myurl') }}";</script> 

<script> 
$(document).ready(function() { 
    callmyfunc(); 
    function callmyfunc() { 
      $.ajaxSetup({ 
       headers: { 
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
       } 
      }); 
      $.ajax({ 
       method: 'POST', 
       url: url, 
       dataType: "json", 
       success: function (feedback) { 
       } 
      }); 
     } 
}); 
</script> 
+2

'storage/logs/laravel.log'には何がありますか? 500エラーは、そこに入力する必要があります。 – Samsquanch

+1

エラーコールバックをajaxに追加して、エラーを出力できるようにしてください。エラー:function(xhr、opts、showError){console.log(xhr); console.log(showError);}アイデアなぜ、またあなたのデータを送信しない?可能であればエラーをポストすると、上記のコードだけではないようです –

+1

ブラウザから/ myurlに直接アクセスしようとしましたか? –

答えて

0

トークンが送信されると、もう有効ではなくなります。私はちょうど10秒ごとにajaxによってサイレントにロードされるページを望んでいました。したがって、私はmyfunctionを呼び出す前に、別のajax関数を使って手動で新しいトークンを再生成する必要があります。

// routes.php 
Route::get('/myurl', [ 
    'uses' => '[email protected]', 
    'as' => 'myurl', 
]); 

Route::get('/refresh_csrf', function(){ 
    return csrf_token(); 
}); 


<!-- blade --> 
<meta name="csrf-token" content="{{ csrf_token() }}"> 
<script>var url_toCall = "{{ URL::to('/myurl') }}";</script> 
<script>var url_refresh = "{{ URL::to('/refresh_csrf') }}";</script> 

<script> 
    $(document).ready(function() { 
     setInterval(refreshToken, 10000 ); 
     setInterval(callMyFunction, 10000); 
     setInterval(refreshToken, 10000 ); 

     function callMyFunction() { 
      $.ajaxSetup({ 
       headers: { 
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
       } 
      }); 
      $.ajax({ 
       method: 'GET', 
       url: url_toCall, 
       dataType: "json", 
       success: function (feedback) { 
       } 
      }); 
     } 
     function refreshToken() { 
      $.ajaxSetup({ 
       headers: { 
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
       } 
      }); 
      $.ajax({ 
       method: 'GET', 
       url: url_refresh, 
       dataType: "json", 
       success: function (feedback) { 
        $('meta[name=csrf-token]').remove(); 
        $('head').append('<meta name="csrf-token" content="' + feedback + '">'); 
       } 
      }); 
     } 
    }); 
</script> 
関連する問題