このシナリオでは、データベースからデータを取得してユーザーに表示したいと考えています。誰かが何らかの入力をしてデータベースに保存している間に、誰かが見るまで常に「0
」のステータスを付けます。したがって、入力が送信されると、ユーザーは新しいデータが別のページに挿入されたポップアップ画面が表示されます。 Ajaxは、ステータスといくつかの値を得たときにここに問題がある「0
は、」それは、それを画面に示されたが、それは任意の値を取得できなかったとき(when all the status value is 1
は)それは、コンソールにエラーが表示されます。PHP Laravel:VerifyCsrfToken.php行のTokenMismatchException 67
TokenMismatchException in VerifyCsrfToken.php line 67
。
問題を解決するにはどうすればよいですか?ここで
は、ルートである:ここでは
Route::post('/unread',[
'uses'=>'[email protected]',
'as'=>'unread'
]);
Route::post('/s_update',[
'uses'=>'[email protected]_update',
'as'=>'s_update'
]);
はコントローラです:
public function getUnread()
{
$items=DB::select(DB::raw("SELECT count(*) as total from items where status =0"));
// $data=mysql_fetch_assoc($items);
return Response::json($items);
}
public function status_update()
{
$items=DB::select(DB::raw("UPDATE items SET status=1 WHERE status=0"));
return Response::json($items);
}
、ここでは、AJAX呼び出しです:
<script type="text/javascript">
setInterval(function(){
$(".container").load("list", function(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type : "POST",
url : "{{url('unread')}}",
dataType : 'json',
success : function(data) {
$.each(data,function(index,subcatObj){
if(subcatObj.total != '0')
{
var yes = confirm('You have '+subcatObj.total+' new messages');
if(yes){
status_update();
}
}
});
},
});
});
}, 3000);
function status_update(){
$.ajax({
url:"{{url('s_update')}}",
method:"POST",
});
}
</script>
'$ .ajaxSetup({ ヘッダー:{ 'のX-CSRF-TOKEN':$( 'メタ[NAME = "CSRFトークン"]')ATTR( 'コンテンツ') } }) ; 'グローバル設定では、$ .ajaxを使用しているたびに宣言する必要はありません。 –
同じ問題が発生しました。 – User57