2017-03-01 14 views
0

に私は、ページビュー/ maessage.php
https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js "> TokenMismatchException VerifyCsrfToken.php線53

を作りましたroutes.phpの

Route::get('/ajax',function(){ 
    return view('message'); 
}); 

ルート::ポストに

<script> 
    function getMessage(){ 
     $.ajax({ 
      type:'POST', 
      url:'/getmsg', 
      data:{'_token': '{{ csrf_token() }}'}, 
      success:function(data){ 
       $("#msg").html(data.msg); 
      } 
     }); 
    } 
    </script> 
    <body> 
    <div id = 'msg'>This message will be replaced using Ajax. 
    Click the button to replace the message.</div> 
    <?php 
    echo Form::button('Replace Message',['onClick'=>'getMessage()']); 
    ?> 
    </body> 

( '/ GETMSG'、 'AjaxControllerインデックス@');

AjaxController.php

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 

class AjaxController extends Controller 
{ 
    public function index(){ 
    $msg = "This is a simple message."; 
    return response()->json(array('msg'=> $msg), 200); 
    } 
} 

私はエラー

おっと下に生成http://localhost:8000/ajax http://localhost:8000/getmsgを実行したときに何かが間違っていたように、見えます。

1/1 RouteCollection.php線218でMethodNotAllowedHttpException: RouteCollection.php線218とエラーのブーフで.....

が、私はコンソルで見たときには、エラーの下に表示さ

VerifyCsrfToken.php線53にTokenMismatchException: VerifyCsrfToken.phpライン53

エラーを理解できません.iラーベールで新しくなりました。私は実際には '_token'の意味を知らない:'{{ csrf_token() }}' in message.php。 pls。このエラーを解決するのに役立ちます。

答えて

0

この例外:

MethodNotAllowedHttpException

は、フォーム上の方法は、あなたのルート上の方法と同じではないことを語っています。

この問題を解決する方法は2つあります。

最初のオプション:変更ルートメソッドタイプ あなたのルートが

Route::get('/ajax',function(){ 
    return view('message'); 
}); 

GETを持っていますが、フォームがPOST

を持っているので、それを変更します。

Route::post('/ajax',function(){ 
    return view('message'); 
}); 

セカンドオプション:ajax形式のメソッドタイプを変更する

Route::get('/ajax',function(){ 
    return view('message'); 
}); 


    <script> 
    function getMessage(){ 
     $.ajax({ 
      type:'GET', 
      url:'/getmsg', 
      data:{'_token': '{{ csrf_token() }}'}, 
      success:function(data){ 
       $("#msg").html(data.msg); 
      } 
     }); 
    } 
    </script> 

CSRFに関するご質問については、クロスサイト偽造から保護します。あなたはそれについてここで読むことができます:https://laravel.com/docs/5.4/csrf

+0

ya、私はそのページを読むが、私は何も得られない。 –

関連する問題