2017-09-19 15 views
0

私のAngularJS-appから独立したLaravelバックエンド(localhost上)にPOSTリクエストを送信しようとしていますが、X-CSRF-TOKENの情報がわかりません。少なくとも私はそれが問題だと思う。AngularJSからLaravelへのPOSTリクエスト

私は常に、コンソールでこのエラーが供給してい

POST http://localhost/public/drinks 419 (unknown status) 

私はAngularJSアプリでのindex.htmlにこれを追加しました:

<script>angular.module("myCaffeineIntake").constant("CSRF_TOKEN", '{{ csrf_token() }}');</script> 

そして、ここでは私のコントローラからのコードです:

$scope.answer = function(newdrink, CSRF_TOKEN) { 
    newdrink._token = CSRF_TOKEN; 
    newdrink._method = "post"; 

    $http({ 
     method : "POST", 
     url : "http://localhost/public/drinks", 
     data : newdrink 
    }).then(function mySuccess(response) { 

    }, function myError(response) { 
     console.log("error"); 
    } 
); 

そして、私のLaravelコントローラ:

public function store(Request $request) 
{ 
    $drink = new Drink; 
    $this->validate(request(),[ 
     'Name' => 'required', 
     'Size' => 'required', 
     'Caffeine' => 'required', 
     'Url' => 'required' 
    ]); 

    Drink::create([ 
     'Name' => request('Name'), 
     'Size' => request('Size'), 
     'Caffeine' => request('Caffeine'), 
     'Amount' => 0, 
     'Url' => request('Url'), 
     'created_at' => time(), 
     'updated_at' => time(),  
    ]); 
} 

何が欠けていますか?

+0

csrf_tokenが実際に存在する場合、ログから確認する方法はありますか?これが起こっている理由はほとんどありません。その1つは、あなたの.envで生成されたアプリケーションキーがある場合です。ファイル –

+0

'store'ルートから何も返さないので、' unknown status'ですか? 'return response(200)'のようなものが少なくとも助けになるかもしれません。 – Jeff

答えて

0

あなたはその要求に何も返されていません。

public function store(Request $request) 
{ 
    //$drink = new Drink; //Don't know why this is here like that, so removed it 
    $this->validate(request(),[ 
     'Name' => 'required', 
     'Size' => 'required', 
     'Caffeine' => 'required', 
     'Url' => 'required' 
    ]); 

    $drink = Drink::create([ 
     'Name' => request('Name'), 
     'Size' => request('Size'), 
     'Caffeine' => request('Caffeine'), 
     'Amount' => 0, 
     'Url' => request('Url'), 
     'created_at' => time(), 
     'updated_at' => time(),  
    ]); 
    //Maybe add the following 
    return response()->json([ 
     'drink' => $drink, 
    ]); 
} 

私は今あなたがそれをキャッチして、その後、JSONレスポンスとしてそれを渡されたので、それは新しいDrinkモデルを返す新しいDrinkの創造に変数$ドリンクを割り当て、私は私がちょうどやったあなたを説明しましょうあなたのsuccessコールに戻っEDIT

: 私は、ちょうどあなたのフォームの各inputng-model="drink.changeThisToAnyName"を入れ、$scope内のすべてのフォームデータをキャプチャして、JSONなどのAjaxポストにそれを渡すあなたの角度のコントローラにいくつかの変更を加えました例を参照してください。

$scope.answer = function() { 

    $http.post('/public/drinks', { 
     data: $scope.drink, 
    }).then(function mySuccess(response) { 

    }, function myError(response) { 
     console.log("error"); 
    } 
); 
+0

これを試しましたが、残念ながら同じエラーが表示されます。 –

+0

私は答えを更新しました –

関連する問題