相关疑难解决方法(0)

使用反应路由器V4以编程方式导航

我刚刚react-router从v3 更换为v4.
但我不知道如何以编程方式导航到一个成员函数Component.即在handleClick()功能中我想/path/some/where在处理一些数据后导航到.我曾经这样做过:

import { browserHistory } from 'react-router'
browserHistory.push('/path/some/where')
Run Code Online (Sandbox Code Playgroud)

但我在v4中找不到这样的接口.
如何使用v4导航?

ecmascript-6 reactjs react-router-v4

313
推荐指数
13
解决办法
22万
查看次数

对 https://accounts.google.com/o/oauth2/v2/auth 的 fetch 访问已被 CORS 阻止

我正在将 fetch 从 React 发送到 Express 以通过 Google 进行身份验证,但我的访问被 CORS 错误阻止。我将 POST 请求从 React 重定向到 Google URL 进行身份验证。我尝试在 Express 应用程序中使用 cors,但仍然遇到相同的错误。用于抓取

const handleClick = (e) => {
    fetch('http://localhost:8000/api/mail/login', {
        method: 'POST'
    })
    .then(res => res.text())
}
Run Code Online (Sandbox Code Playgroud)

在 Express app.js 中使用 cors

app.use(cors())
Run Code Online (Sandbox Code Playgroud)

尝试重定向到谷歌身份验证

const oauth2Client = new google.auth.OAuth2(
    process.env.CLIENT_ID,
    process.env.CLIENT_SECRET,
    process.env.REDIRECT_URI
)

const url = oauth2Client.generateAuthUrl({
    access_type: 'offline',
    scope: process.env.SCOPE
})

const gmail = google.gmail({
    version: 'v1',
    auth: oauth2Client
})

router.post('/login', (req, res, next) => {
    res.redirect(url)
})
Run Code Online (Sandbox Code Playgroud)

错误:访问“https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=https%3A%2F%2Fmail.google.com%2F&response_type=code&client_id=727520060136-ngpfd4ll798v42gfclh7cms9ndqstt32”进行获取。来自原点“http://localhost:3000”的 apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8000'(从“http://localhost:8000/api/mail/login”重定向)已被阻止CORS …

cors oauth-2.0 express google-oauth reactjs

5
推荐指数
1
解决办法
6433
查看次数