2017-12-14 5 views
1

私はLaravel 5.5で動作するWebアプリケーションを持っており、私はAJAXを排他的に使ってショッピングカートを作成する必要があります。AJAXユーザーがログインしていない場合は応答を要求しない - Laravel

ユーザーがログインすると、すべてが円滑に実行されます。ユーザーがログインしていないときは、私は空の応答を得ます。

ルート:

<?php 

    class ShopController extends Controller 
    { 

     public static function addToCart(){ 

     $message = "Some message"; 

     return response()->json(["message"=>$message]); 
     } 
    } 
?> 

jQueryのです:

Route::post('/shop/add2', '[email protected]')->name('add2cart'); 

ShopControllerのようなものに見える

var token = $('[name="_token"]').val(); 
var var1 = $(this).data('itemcom'); 
var var2_ = $(this).data('itemvalue'); 
$.ajax({ 
     url: '/shop/add2', 
     type: 'POST', 
     data: {_token: token, identX:var2_, identY:var1 }, 
     dataType: 'JSON', 
     success: function(response) { 
     console.log(JSON.stringify(response)); 
     }, 
     error : function(errors){ 
     console.log(JSON.stringi(errors)); 
     } 
}); 

を私は私ができるすべてのものを試してみましたが、私は419のステータスコードを取得します。私は当然知っている?

答えて

0

うーん、私は、コードと強いdevajuを持っています419 ...良いものではない。 FacebookのWebHook用のルートにCsrfトークンがないため、半日のようにデバッグする必要がありました。これはあなたの場合に似ているのでしょうか?

サードパーティのajaxプラグインでも同じことがアップロードされます。

乾杯

+1

それも私が見つけたものです。私は以下のコメントに答えました。 https://laravel-news.com/excluding-routes-from-the-csrf-middleware – codiiv

1

あなたは、この関数は誰にでもアクセス可能になることを気にしない場合は、コントローラのコンストラクタでミドルウェアに例外を追加することができます

public function __construct() 
{ 
    $this->middleware('auth', ['except' => ['addToCart']]); 
} 
+0

スニペットありがとう。何らかの理由で私のためにはうまくいかなかったので、https://laravel-news.com/excluding-routes-from-the-csrf-middlewareへ私を連れてきて、App \ Http \ MIdleware \ VerifyCsrToken.phpファイルgrrrrr – codiiv

+0

Ok!問題ない!私はこれがあなたのために働くことを望む! – Laerte