Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет. нужна помощь. сделал небольшой проект для личного пользования (на сервере laravel 5.3, на клиента Angular), при разработке постоянно использовал php artisan serve и все работало, но как выгрузил на сервер то на первый же запрос для авторизации (post) получаю ответ 301 и перенаправление на тот же адрес, притом что через тот же postman никакого 301 и перенаправления нет, все идет как надо
Не в сети
/ в конце url случайно нет?
Не в сети
нет. странно то что если тот же запрос отправляется через postman то он обрабатывается правильно. Но если отправляется из браузера (из ангулара непосредственно), то приходит 301 и следом идет запрос на тот же url но методом get вместо post
Не в сети
то что после 301 и 302, запрос только GET – это требования стандарта. редирект с сохранением метода – это 307 и 308. другой вопрос откуда он берётся – может в коде он формируется по каким-то условиям? или миддлварь какая-то их генерит?
Не в сети
ну, за себя точно скажу что я не писал никаких редиректов. рассчитывал может кто подскажет откуда такой редирект взяться мог. в таком случае придется дебаггером все строки проходить пока не найдется редирект(((
Не в сети
пытался сегодня дебажить и получил неожиданный результат.
перед тем как отправить запрос post отправляется запрос Options (это ожидаемое поведение), но на запрос options по нужному урлу приходит 301 в итоге собственно сам post даже и не отправляется (а отправляется get как по протоколу и в ответ получает 404 что вполне логично).
По этой причине в постмане все нормально работает (просто потому что он не отправляет options а сразу отправляет post)
А неожиданностью стало то что продебажить options запрос я не могу никак. ставлю брэйкпоинт на первой же строке в индексе а в результате ловится только запрос get (который идет после получения от options ответа 301).
и чет теперь я не вкурю что делать то. подскажите плиз
Не в сети
запрос отправляется кроссдоменно? если да, нужна миддлварь, которая будет отвечать на options что запрос разрешено отправлять – например пакет laravel-cors
Не в сети
/ в конце url случайно нет?
У меня проблема со слешем на конце. Если переходить по ссылке site/test, то отобразится все нормально. Если перейти по site/test/, то вызывается ошибка 301 и url становится site/public/test. Вы знаете как это исправить? Заранее спасибо.
Не в сети
У меня проблема со слешем на конце. Если переходить по ссылке site/test, то отобразится все нормально. Если перейти по site/test/, то вызывается ошибка 301 и url становится site/public/test. Вы знаете как это исправить? Заранее спасибо.
наличие или отсутствие / в конце url определяется соглашениями той или иной cms или фреймворка. в ларавеле решено что / в конце url быть не должно, это даже не захардкожено, а просто изначально заложено в логику работы маршрутизатора и это нельзя «исправить», потому что это не ошибка. просто прими это как данное и не борись…
Не в сети
Страницы 1