2017-09-28 14 views
4

私は本当にこれについていくつかの助けに感謝します。 私はこのフォーラムに掲載されているようにたくさんのソリューションを試しましたが、うまく動作することはできません。Ajax LARAVEL 419 POSTエラー

私のAJAX呼び出しが私のcompany.blade.phpが

ある

$(document).ready(function() { 
    $("#company").click(function() { 
     $.ajax({ 
      type: "POST", 
      dataType:'html', 
      url : "/company", 
      success : function (data) { 
       $("#result").html(data); 
      } 
     }); 
    }); 
}); 

私は私のルートでビューを呼び出しています

Route::post('/company', '[email protected]'); 

とコントローラ

public function loadContent() 
    { 
     return view('listing.company')->render(); 
    } 

のようなものです

@foreach ($companies as $company) 
      <div class="posting-description"> 
      <h5 class="header"><a href="#"></a>{{$company->name}} 
      </h5> 
      <h5 class="header"> {{$company->streetaddress}} {{$company->postalcode}}</h5> 
      <p class="header"> 
      <span class="red-text"> <?= $service; ?> </span> is available on <span class="green-text"><?php echo $date; ?></span> 
      </p> 
    @endforeach 

は、私はあなたが提出している任意のデータを持っていないこのエラー

POST http://127.0.0.1:8234/company 419 (unknown status) 
+1

をいくつかのURIを除外することができますにこれを追加しますか?あなたがデータベースを呼び出さない場合にどのように会社にデータベースを要求するのか、またCSSは解釈される言語なので、CSSファイルをコンパイルするのは間違いです!最後に、コントローラのロジックを実行し、レンダリングするビューの結果をAjaxに渡す必要があります。 – teeyo

+0

はい、私はそれを認識しています。それは<?= $ serviceのようなものをコンパイルしません。 ?>も。データベースをどのように呼び出す必要がありますか? – Cowgirl

+0

MVCフレームワークのLaravelを使用している場合、このアクションでコントローラ内のアクションへのルートを作成する必要があります。このアクションでは、eloquentを使用してデータベースを呼び出し、その結果をHTMLを表示するビューに渡します。 – teeyo

答えて

10

Laravel 419 POSTエラーは通常、api.phpとトークン認証と関連している

Laravelは自動的にアプリケーションによって管理される各アクティブユーザセッションのためにCSRF「トークン」を生成します。このトークンは、認証されたユーザーが実際にアプリケーションに要求を出すものであることを確認するために使用されます。

は、この `@のforeach`は、テンプレートエンジンではなくPHPであることを知っていました、あなたのAJAX呼び出し

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

またはあなたがVerifyCSRFトークンミドルウェアに

protected $except = [ 
     'stripe/*', 
    ]; 
0

を取得しています!あなたのajaxにこの行を追加してみてください:

data: $('form').serialize(), 

名前が一致するように変更してください!

また、データはフォーム送信機能の中で送信する必要があります。

あなたのコードは次のようになります。laravelで

<script> 
 
\t $(function() { 
 
\t \t $('form').on('submit', function (e) { 
 
\t \t \t e.preventDefault(); 
 
\t \t \t $.ajax({ 
 
\t \t \t \t type: 'post', 
 
\t \t \t \t url: 'company.php', 
 
\t \t \t \t data: $('form').serialize(), 
 
\t \t \t \t success: function() { 
 
\t \t \t \t \t alert('form was submitted'); 
 
\t \t \t \t } 
 
\t \t \t }); 
 
\t \t }); 
 
\t }); 
 
</script>

+0

まだ、彼はコントローラは私が理解しているから:) – teeyo

+0

私は彼がAJAXだけでなく、より多くの問題を抱えていることを意味しますが、彼はそれのAJAX部分について尋ねているので、私は彼にその答えを与えています:P –

0

ビューをレンダリングすることができます。 ex。 $ returnHTML = view( 'myview') - > render();

$companies = App\Company::all(); 
return view('listing.company')->with('companies' => $companies)->render(); 

これは、ビューの企業は、変数利用できるようになり、それがHTMLレンダリングする必要があります myview.blade.phpは、あなたがそうのような企業をロードするために最初に必要なあなたのアクションでは、ブレード・コード

+0

レンダリングしても、このビューには、検索フォーム用の現在のURL getへのアクセス権がないため、500のエラーが発生します。 – Cowgirl

+0

これを削除dataType: 'html'、 –

+0

不明419ステータス – Cowgirl

0

が含まれています正しく

あなたのビューをデバッグするには、Postman Chrome拡張機能を使用してください。

+0

私はそれもやっています。コンパクトな関数を使って、その会社の変数をlisting.companyビューに渡しています。 – Cowgirl

+0

' - > render()'はHTMLをレンダリングする必要があります。 HTML内部、ブレードタグなし!申し訳ありませんが、Laravel installaionをご利用いただけないため、デバッグが可能です。 – teeyo

関連する問題