2015-10-25 18 views
7

関連するコードを以下に示します。私は今、時間のためにこれを把握しようとしてきたLaravel 5.1 XMLHttpRequestのAJAX POST TokenMismatchException

var csrfToken = "{{ csrf_token() }}"; 
xmlhttp.open("POST", "/internal/v1/create/strategy", true); 
xmlhttp.setRequestHeader('X-CSRF-TOKEN', csrfToken); 
postString = "param1=" + varOne + "&param2=" + varTwo; 
xmlhttp.send(postString); 

、私は正直、この時点で何をすべきか見当がつかない。フォームメソッドを使用すると、すべてうまく動作することに注意してください。私もpostStringのパラメータとしてCSRFトークンを送信しようとしました:「_token =」+ csrfToken

+0

'X-XSRF-TOKEN'で試したことがありますか? – Iamzozo

+0

ヘッダーが実際に送信されるかどうかを確認するために、ポストリクエストをデバッグしようとしましたか?また、私はあなたのxmlhttpオブジェクトをインスタンス化する方法を見ることができません。 – Tim

+0

xmlhttpオブジェクトは、コードの前半に通常インスタンス化されていますが、コードを修正できました。ここに2つの問題がありましたが、config/session.phpファイルでドメインがnullに設定されていました。これは設定が必要な場合があります。そうしないとエラーが発生しますが、 -typeをURLでエンコードされた形式にします。 – jrgilman

答えて

2

問題は2部構成のソリューションを通じて解決されました:「のContentを追加する必要があった

実際のドメインに向けドメイン 『変数:「

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

また、設定に/また指すことが必要であったファイルsession.php LaravelはPOST'edパラメータを読み取ることができるようにするためのヘッダを』入力デフォルト値ではなく、アプリケーションである必要があります。これはおそらく最初のセットアップ中に行われたものですが、私はそうすることを忘れていたに違いありません。

これらの変更を行った後、POST要求はAJAX呼び出しを介して正常に実行されます。