私はこれに関するいくつかの助けを本当に感謝します。このフォーラムに投稿されているように、私はたくさんの解決策を試しましたが、それを機能させることはできません。
私のajaxコールは次のようなものです
$(document).ready(function() {
$("#company").click(function() {
$.ajax({
type: "POST",
dataType:'html',
url : "/company",
success : function (data) {
$("#result").html(data);
}
});
});
});
私はルートを介してビューを呼び出しています
Route::post('/company', 'Ajaxcontroller@loadContent');
そしてコントローラー
public function loadContent()
{
return view('listing.company')->render();
}
私のcompany.blade.phpは
@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)
Laravel 419投稿エラーは通常、api.phpおよびトークン認証に関連しています
Laravelは、アプリケーションが管理するアクティブなユーザーセッションごとにCSRF「トークン」を自動的に生成します。このトークンは、認証されたユーザーが実際にアプリケーションにリクエストを行っていることを確認するために使用されます。
これをajax呼び出しに追加します
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
または、VerifyCSRFトークンミドルウェアで一部のURIを除外できます
protected $except = [
'stripe/*',
];
csrf_tokenを投稿しないと419エラーが発生します。 postメソッドでは、このトークンを他の変数に沿って追加する必要があります。
同じ問題がありましたが、アプリケーションキーの再生成が役立ちました-php artisan key:generate
送信しているデータがありません!この行をajaxに追加してみてください:
data: $('form').serialize(),
必ず名前を変更してください。
また、フォーム送信関数内でデータを送信する必要があります。
コードは次のようになります。
<script>
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'company.php',
data: $('form').serialize(),
success: function () {
alert('form was submitted');
}
});
});
});
</script>
私は同じ問題を抱えていましたが、最終的にはPHPの最大投稿サイズの問題になりました。それを増やすことで問題は解決しました。
laravelでは、ビューレンダーを使用できます。例$ returnHTML = view( 'myview')-> render(); myview.blade.phpにはブレードコードが含まれています
1行目ではなく2行目に<?php
を含む構成ファイルがあると、このエラーを受け取りました。
あなたのアクションでは、最初にそのような会社をロードする必要があります:
$companies = App\Company::all();
return view('listing.company')->with('companies' => $companies)->render();
これにより、企業変数がビューで使用可能になり、HTMLが正しくレンダリングされるはずです。
ビューをデバッグするには、postman chrome拡張機能を使用してみてください。