#laravel #redirect #iframe #laravel-controller
#laravel #перенаправление #iframe #laravel-контроллер
Вопрос:
Я использую API от поставщика платежей.
В какой-то момент я показываю пользователю страницу, где он может аутентифицироваться (введите код, который отправит ему поставщик платежей). Обратите внимание, что на этой странице я отображаю div
элемент, который поставщик платежей предоставил мне через запрос API, который я сделал ранее (для этого я использовал Guzzle).
После того, как пользователь вводит код и нажимает «Отправить», поставщик платежей перенаправляет его на одну из моих страниц — скажем /redirect
так. Итак, в моем web.php
у меня есть маршрут:
Route::post('/redirect', 'OrdersController@redirect');
В моем OrdersController я делаю это:
// do various stuff like updating the order status
return redirect("orders/$order->id");
Существует другой маршрут в web.php
:
Route::get('/orders/{order}', 'OrdersController@show');
И вот show
метод:
return view('orders/show', [
'order' => $order,
'page_title' => 'Order Receipt',
]);
Две вещи идут не так:
- Пользователю показывается
orders/show
представление, но кажется, что оно находится в iframe: - URL-адрес страницы не изменяется. Например, он не отображается
myapp.test/orders/435
. Вместо этого он по-прежнему показывает URL предыдущей страницы (той, на которой пользователь аутентифицировался) — что-то вродеmyapp.test/authenticate
, скажем.
Есть идеи, почему это происходит?
Комментарии:
1.
On this page, I render a div element that the payment-provider has given me through an API request I made previously
-> содержит ли он iframe?2. » но похоже, что это в iframe » Вы можете легко проверить, есть ли iframe, просмотрев исходный код HTML страницы
3.
return view('orders/show')
не должно бытьreturn view('orders.show')
? Точка вместо косой черты?4. @VadimSirbu Я обновил описание скриншотом. Моя страница отображается внутри iframe.
5. @brombeer вы, конечно, правы — я был слишком сонным, чтобы думать об этом — описание обновлено