#php #laravel #http #request #postman
Вопрос:
У меня есть простой маршрут в Laravel 8, чтобы вернуть некоторые данные запроса. Но когда я отправляю запрос в Postman с выбранным сообщением, я получаю сообщение об ошибке «Метод GET не поддерживается для этого маршрута». Имейте в виду, у меня ПОЧТА выбрана в Почтальоне, а не ПОЛУЧЕНА.
Вот маршрут:
Route::post('post-route', 'UserController@postFunction');
Вот функция, вызываемая в UserController:
public function postFunction(Request $request) {
return [
'id1' => $request->id1,
'id2' => $request->id2,
];
}
В Postman я передаю данные как json:
{
'id1': 1234,
'id2': 4321
}
Я просто пытаюсь убедиться, что передаю правильные данные в запросе, но я получаю эту ошибку. Почему он пытается выполнить запрос GET?
Комментарии:
1. Есть ли какие-либо статические вызовы перенаправления URL-адресов в промежуточном программном обеспечении или что-то в этом роде?
2. В моем промежуточном программном обеспечении для аутентификации есть перенаправления, но только в том случае, если пользователь не прошел проверку подлинности. В этом случае я передаю токен пользователя в заголовке для аутентификации, поэтому никаких перенаправлений. Даже если я полностью удалю промежуточное программное обеспечение, ошибка все равно возникнет.
3. Переместите маршрут из групп промежуточного программного обеспечения, отредактируйте маршрут и верните что-то из закрытия маршрута и проверьте, работает ли это.
4. Поделитесь изображением почтальона вашего звонка, поделитесь заголовками тоже, пожалуйста.
5. пожалуйста, поделитесь скриншотом звонка почтальона с заголовками
Ответ №1:
Вы не можете проверять свои сообщения, РАЗМЕЩАТЬ или УДАЛЯТЬ маршруты с помощью Postman, потому что Laravel использует защиту промежуточного программного обеспечения CSRF.
Если вы действительно хотите использовать Postman, вам нужно прокомментировать его, чтобы временно отключить это промежуточное программное обеспечение в app/Http/Kernel.php
:
protected $middlewareGroups = [
'web' => [
(...)
//AppHttpMiddlewareVerifyCsrfToken::class,
],
(...)
];
Но не забудьте включить его снова, как только вы захотите развернуть свой проект в рабочей среде!
Если вы не хотите временно отключать промежуточное программное обеспечение CSRF, вы можете выполнить действия, упомянутые здесь https://gist.github.com/ethanstenis/3cc78c1d097680ac7ef0, но это немного дольше.