Как я могу заставить браузер 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>
Другие вопросы по тегам