Laravel 5.4 - pjax отвечает на ошибку Unprocessable Entity - PullRequest
0 голосов
/ 26 апреля 2018

Я использовал плагины laravel pjax из пакета laravel / spatie

Когда я нажимал на ссылку «Войти и зарегистрироваться» (базовая аутентификация laravel), она оштрафована.Pjax работает, но когда я пытался войти, он показывает ошибку.

(1/1) HttpException
in Application.php (line 926)
at Application->abort(422, '', array())
in helpers.php (line 30)
at abort(422)
in FilterIfPjax.php (line 87)
at FilterIfPjax->fetchContainer(object(Crawler), '#body')
in FilterIfPjax.php (line 54)
at FilterIfPjax->filterResponse(object(Response), '#body')
in FilterIfPjax.php (line 35)
at FilterIfPjax->handle(object(Request), object(Closure))
in Pipeline.php (line 148)
...

Что-то отсутствует в моем коде?Я понятия не имею, как исправить эту ошибку.Кто-нибудь может объяснить, почему возникает эта ошибка?

<script type="text/javascript">
        $(document).ready(function(){
            if ($.support.pjax) {
                $.pjax.defaults.timeout = 2000; // time in milliseconds
                $(document).pjax('a', '#body');
                $(document).on('submit', 'form[data-pjax]', function(event) {
                    $.pjax.submit(event, '#body');
                });
            }
        });
    </script>

Это правильный способ отправки форм с использованием pjax (без перезагрузки страницы)?

Вот мой макет приложения

<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}"></script>
    <script type="text/javascript" src="{{asset('js/jquery.pjax.js')}}"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            if ($.support.pjax) {
                $.pjax.defaults.timeout = 2000; // time in milliseconds
                $(document).pjax('a', '#body');
                $(document).on('submit', 'form[data-pjax]', function(event) {
                    $.pjax.submit(event, '#body');
                });
            }
        });
    </script>
</head>
<body id="body">
    ....
   @yield('content')
</body>
</html>

1 Ответ

0 голосов
/ 26 апреля 2018

Я выяснил, когда я удаляю плагины pjax и пытался войти в систему обычным образом, это показывает ошибку

SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)

Итак, я понял, что забыл настроить DB_USERNAME и DB_PASSWORD в файле .env.

Я поставил правильные ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ и установил обратно плагин pjax.Работает отлично.:)

Я думаю, что FilterIfPjax Class выдает ошибку 422, если в запросе есть ошибка .. Я не уверен в этом:)

...