0

我的 React 应用程序中有一个登录页面,用户可以选择本地登录或通过社交网络 OAuth2 服务登录,该服务passport.js在基于 Koa 的 API 服务器上使用。

最初,我试图通过 ajax 调用后端,但似乎 OAuth2 服务器不允许我这样做,给我一个 CORS 错误,即使使用代理也是如此,所以我试图简单地Link在社交登录按钮周围放置一个将to属性添加到我的 API 后端 url,如下所示:

  
  ...
  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?

4

1 回答 1

0

Link只需用标签重写您的a标签。如下所示

<a href="/auth/google/signin"> ... </a>
于 2017-04-15T11:46:40.243 回答