2016-05-24 5 views
0

laravelでWebアプリケーションをビルドしていますが、ログイン後にモーダルを開く際に問題が発生しました.JQueryが原因で401(許可されないエラー)が発生してタイムアウトになっているようです。JQuery laravel表示モーダル401がログアウトしました

これは主にGoogle Chromeで発生しますが、非常に矛盾しているようです。だから時々私がログインすると、モーダルを開いたりロードしたりした後に401エラーが出ることがあります。

私の口頭では、MYSQLデータベースから一連のユーザーをリストするAjax呼び出しが作成されています。

エラーをコンソールから添付ファイルとして追加しました。私はプライバシーの理由からURLをマスクしました。赤色のものはログインを処理し、紫色のものはモーダルを開き、ユーザーをリストするURLです jquery 401 error on opening modal

JQueryがこの401エラーの原因となっているのかどうかわかりません。

答えて

0

デフォルトでは、LaravelはPOST要求を取得するたびに_tokenパラメータを要求します。通常は、{!! csrf_token !!}のブレードを使用してフォームに追加します。 Ajaxを使用しても違いはありません。 POSTリクエストを行う場合は、_tokenパラメータをリクエストに追加する必要があります。これを行うには、Ajaxのパラメータに直接追加するか、またはレイアウトビュー<meta name="csrf-token" content="{{ csrf_token() }}">;にこれを追加してjQueryにすべてのAjaxリクエストを処理させるように指示します。これはあなたのJavaScriptにも当てはまります。

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

Ajaxリクエストの前に実行されていることを確認してください。

これは_paramを追加しませんが、X-CSRF-TOKENヘッダーをAjax POSTリクエストに追加します。 Laravelは_トークンパラメータまたはX-CSRF-TOKENを確認します。実際にはどちらか一方のみが必要です。

既に追加してもこの問題が発生した場合は、ブラウザーの[ネットワーク]タブでLaravelの応答を確認してください。 Chromeでは、F12キーを押してDevToolsを開きます。 [ネットワーク]タブに移動し、ページを更新します。左側のパネルには、ページが作成したすべてのHTTPリクエストが表示されます。 XHRフィルタをクリックすると、Ajaxのリクエストをフィルタできます。失敗したリクエストをクリックします(赤色になります)。右側のパネルには、すべてのリクエストと応答データが表示されます。レスポンスをクリックすると、Laravelの応答を表示できます。レスポンスがHTMLの場合は、[プレビュー]タブですべてのHTML/CSSをフォーマットします。

+0

実際にCSRFトークンにいくつかの問題がありました。どうも! – Darrin

関連する問題