Как поймать перенаправление RedirectResponse из Vuejs и перенаправить - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь произвести платеж с помощью laravel / cashier-mollie . Я использую только vuejs для внешнего интерфейса.

Вот мой контроллер:

public function __invoke(string $plan)
    {
        $user = Auth::user();

        $name = ucfirst($plan) . ' membership';

        if(!$user->subscribed($name, $plan)) {

            $result = $user->newSubscriptionViaMollieCheckout($name, $plan)->create();

            if(is_a($result, RedirectResponse::class)) {
                return $result; // Redirect to Mollie checkout
            }

            return response()->json([
               'status' => 'Félicitation, vous êtes inscrit au ' . $plan . ' plan'
            ]);
        }

        return response()->json([
            'status' => 'Vous êtes déjà inscrit au ' . $plan . ' plan'
        ]);
    }

Обычно я должен быть перенаправлен на внутреннюю страницу Mollie для оплаты. Поскольку я использую Vuejs, я не.

В хроме я получаю хороший xhr. Когда я копирую / вставляю ссылку в браузер, я перенаправляю на Молли.

enter image description here

Я пробовал это, но ответ возвращает только пустые элементы:

return response()->json($result);

Ответ:

{"headers":{},"original":null,"exception":null}

Как получить ссылку для перенаправления, чтобы я мог перенаправить пользователя в Mollie с помощью Vuejs?

1 Ответ

0 голосов
/ 16 октября 2019

Когда вы выполняете запрос XHR и ваш сервер отправляет ответ Redirect, он перенаправляет этот запрос XHR, а не сам браузер.

Вы должны либо ответить с помощью некоторого JSON, содержащего URL перенаправления, который можно использоватьв вашем клиенте перенаправить браузер (не рекомендуется) или вообще не отправлять запрос XHR, а просто отправить браузер клиента по URL-адресу, который будет перенаправлен позже.

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