href 和 $.get 的区别

Difference href and $.get

我的网页上有一个 link 转到“/auth/facebook”

<a href='/auth/facebook'>Log In with Facebook</a>

这很好用。

我需要在 React 组件的 Js 中做同样的事情。这是代码

<a className='btn btn-primary btn-outline'
   role='button'
   onClick={() => $.get('/auth/facebook')}>

   Sign up/in to buy

</a>

当触发 Onclick 时,控制台输出错误,就好像我在尝试执行跨站点请求一样。

XMLHttpRequest cannot load https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http%…Fauth%2Ffacebook%2Fcallback&scope=public_profile&client_id=XXXX. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

我的理解是 link 和 $.get 调用都应该转到我的服务器 "localhost" 并触发相同的路由。 这两个调用有什么区别?

$.GET 只是从服务器加载数据(假设它有效,并且没有抛出 CORS 错误)。它不处理重定向。如果由于某种原因你不能使用 href 属性,你可以这样做:

onClick={() => window.location.href = '/auth/facebook'}

因为看起来你在使用 React,你可能也会受益于使用像 react-router (https://github.com/ReactTraining/react-router) 这样的路由器模块,它暴露了一个 <Link> 组件来保持你的 UI 与 URL.

同步