Правильный способ маршрутизации запросов vue / ajax в laravel? - PullRequest
0 голосов
/ 04 ноября 2018

Я новичок в laravel и создаю веб-сервис, который может работать без JavaScript (если пользователь отключил его или что-то в этом роде).

Но было бы лучше, если бы пользователь мог выполнять определенные действия, не обновляя всю страницу. Я хотел бы иметь возможность сказать, отправить форму без перезагрузки страницы или обновить уведомления.

Возможные варианты:

1) Отправьте ajax по тому же маршруту, что и в чистой HTML-форме, но с дополнительной переменной, и заставьте мой laravel ответить json при обнаружении этой переменной

2) Использовать маршрут API? Будет ли это определять текущего пользователя?

3) Создайте новые маршруты для всего ajax, даже если они функционируют так же, как мои текущие маршруты (кроме возврата вида)

Кроме того, токен CSRF работает несколько раз подряд или мне нужно отключить его для обработки нескольких сообщений формы ajax подряд без обновления страницы?

1 Ответ

0 голосов
/ 04 ноября 2018

Я рекомендую хранить маршруты отдельно, чтобы избежать странных ошибок кэширования и для вашего же здравого смысла, так как код меняется со временем.

Laravel настроен из коробки, чтобы вы могли определять веб-маршруты в routes/web.php и API-маршруты в routes/api.php. Маршруты, определенные в вашем файле api.php, будут доступны по умолчанию /api/*. Таким способом гораздо проще управлять изменением приложения, чем пытаться заставить ваши контроллеры выполнять и представления, и ответы API.

С Laravel Passport ваши маршруты API могут обнаруживать текущего пользователя, вошедшего в систему, через промежуточное ПО auth:api в сочетании с добавлением Laravel\Passport\Http\Middleware\CreateFreshApiToken в вашу группу промежуточного ПО web. https://laravel.com/docs/5.7/passport#consuming-your-api-with-javascript

Простой способ управления дублированными контроллерами (один для веб-сайтов и один для api) - это поместить контроллеры Api в их собственное пространство имен с php artisan make:controller Api/FooController. Вы даже можете настроить маршруты Api для поиска контроллеров в этом пространстве имен по умолчанию, отредактировав RouteServiceProvider.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...