我可以做我想做的事!我尝试了所有1000个提示,但没有任何效果。 我总是得到“内部服务器错误”。 我想要的是调用MyController @ myurl
我的第1000个问题为什么我遇到“内部服务器错误”是:
routes.php文件:
Route::post( '/myurl', [
'uses' => 'MyController@myurl',
'as' => 'myurl',
] );
my.blade.php:
<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>
答案 0 :(得分:0)
一旦发送,令牌就不再有效。我只想让页面每隔10秒由ajax静默加载。因此,在调用myfunction之前,我必须使用另一个ajax函数手动重新生成一个新令牌。
// routes.php
Route::get( '/myurl', [
'uses' => 'MyController@myurl',
'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>