Как я могу заставить браузер GET на основе GET из маршрута React?
У меня есть страница входа в моем приложении React, которая предоставляет пользователю возможность выбора локального входа или входа через сервисы социальной сети OAuth2, использующие passport.js
на сервере API на основе Коа.
Первоначально я пытался вызвать бэкэнд через ajax, но кажется, что серверы OAuth2 не позволят мне это сделать, что выдает ошибку CORS, даже с прокси, поэтому вместо этого я попытался просто разместить Link
вокруг кнопки входа в социальную с to
Свойство для моего URL-адреса сервера API, как показано ниже:
...
render(
<h4 className="ui dividing header">
Sign in with a Social Media Account
</h4>
<Link to="/auth/google/signin">
<Button
id="googleSigninButton"
disabled={authenticating}
className="google plus"
>
<Icon className="google plus" />
Google Plus
</Button>
</Link>
)
...
Проблема в том, что когда я нажимаю на кнопку, маршрутизатор перехватывает ссылку и пытается отобразить компонент по этому пути и устанавливает местоположение браузера (в навигационной панели), но на самом деле браузер не выполняет GET для ресурса на сервер - что приводит к тому, что мой общий контейнер 404 рендерится. Я также попытался использовать простой элемент привязки, но это не удалось по той же причине, что и выше.
Итак, что мне нужно знать, это как заставить React Router игнорировать определенный путь и позволить браузеру выполнить GET для ресурса?
1 ответ
Просто переписать свой Link
пометить с a
тег. Как ниже
<a href="/auth/google/signin"> ... </a>