首页 > 解决方案 > CORS 错误:使用 res.redirect() 时没有“Access-Control-Allow-Origin”标头

问题描述

我正在尝试通过 res.redirect() 设置 oauth2.0,但尝试在前端获取时遇到错误。

CORS 策略已阻止从源“http://localhost:3000”获取“https://accounts.google.com/o/oauth2/v2/auth”的访问权限:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

这是代码

router.get('/auth/google', async (req, res) => {
  await res.redirect(googleLoginUrl)
})
const googleLoginUrl = oauth2Client.generateAuthUrl({
    scope: [
        'https://www.googleapis.com/auth/userinfo.email',
        'https://www.googleapis.com/auth/userinfo.profile'
    ],
    response_type: 'code',
    prompt: 'consent'
})

截至目前,使用 res.redirect() 时无法设置标头,因此我无法将“Access-Control-Allow-Origin”设置为“*”。我还有什么其他选择?

标签: javascriptnode.jsreactjsexpresscors

解决方案


推荐阅读