2016-04-15 22 views
0

一部Angular2のチュートリアルをMuddlingとLaravel 5.2で動作するようにポストの要求を取得しようとしていますヘッダーセクションまたは正直なところであれば、それはどこに行かなければならないのでしょうか。Angular2のHttp Laravel CSRFトークン

let headers = new Headers({ 'Content-Type': 'application/json', 'X-CSRF-TOKEN': '???????' }); 

更新:だから私は、metaタグからCSRFトークンをプルするが、それでも、それはLaravel POSTリクエストに渡さ取得する方法を発見していない機能を追加しました。

getToken() { 
     let token = document.querySelector('meta[property="csrf-token"]')['content']; 
     return token; 
    } 

おかげ

答えて

3

これは私がやったことです。それが最良の方法であるかどうかは分かりませんが、うまくいきました。

メインのLaravelテンプレートにこのメタタグを追加しました。

<meta property="csrf-token" name="csrf-token" content="{{ csrf_token() }}"> 

Angular2 whatever.service.tsでは、getトークン機能を追加しました。

getToken() { 
    let token = document.querySelector('meta[property="csrf-token"]')['content']; 
    return token; 
    } 

私はこれをpostメソッドに追加しました。

let headers = new Headers({ 'Content-Type': 'application/json', 'X-CSRF-TOKEN': this.getToken()}); 

Laravelは現在、500トークン不一致エラーなしでポストを受け入れ

よりよい解決策がある場合にチャイムしてください!

0

これは<title>{{ title() }}</title>と同じ "問題" である必要があります:何のcomponentありません。つまり、Angularはここで補間を行うことはできません。 titleタグの場合、チームは注射可能なTitleサービスを提供します。 metaタグの場合は、独自のソリューションをロールバックする必要があります。

はこちらをご覧:https://wijmo.com/blog/how-to-improve-seo-in-angularjs-applications/

彼らはその内容を操作するmeta要素にアクセスするためにdocument.querySelectorを使用し、setAttribute

+0

ありがとうBenjamin。メタタグ構文はLaravelであり、トークンを生成します。質問をAngular2にプルする関数で質問を更新しましたので、Angularでトークンを取得しました。ポストリクエストとともにLaravelに戻す方法はわかりません。 – BrioDev