Ошибка AJAX LARAVEL 419 POST
Я бы очень признателен за помощь в этом.
Я попробовал множество решений, размещенных на этом форуме, но я не могу заставить его работать.
Мой вызов ajax - это что-то вроде
$(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();
}
Моя компания .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)
Ответы
Ответ 1
Ошибка Laravel 419 post обычно связана с авторизацией api.php и токена
Laravel автоматически генерирует "токен" CSRF для каждого активного сеанса пользователя, управляемого приложением. Этот токен используется для проверки того, что аутентифицированный пользователь является тем, кто действительно делает запросы к приложению.
Добавьте это в свой вызов ajax
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
или вы можете исключить некоторые URI в промежуточном программном средстве VerifyCSRF
protected $except = [
'stripe/*',
];
Ответ 2
В вашем действии вам нужно сначала загрузить такие компании:
$companies = App\Company::all();
return view('listing.company')->with('companies' => $companies)->render();
Это приведет к тому, что переменная компаний будет доступна в представлении, и она должна правильно отобразить HTML.
Попробуйте использовать расширение postman chrome для отладки вашего представления.
Ответ 3
У меня была та же проблема, и в конечном итоге это была проблема с размером поста в php. Увеличение его решило проблему.
Ответ 4
Ошибка 419 происходит, когда вы не публикуете csrf_token. в вашем методе post вы должны добавить этот токен вместе с другими переменными.
Ответ 5
У вас нет данных, которые вы отправляете! Попробуйте добавить эту строку к вашему 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>
Ответ 6
В laravel вы можете использовать рендеринг вида.
ех.
$ returnHTML = view ('myview') → render();
myview.blade.php содержит ваш код лезвия
Ответ 7
Я получил эту ошибку, когда у меня был файл конфигурации с <?php
во второй строке вместо первой.
Ответ 8
Возникла та же проблема, помог регенерировать ключ приложения - php artisan key:generate