我的 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?