gpt4 book ai didi

node.js - 表示 res.redirect() 不执行任何操作

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:42 24 4
gpt4 key购买 nike

我正在开发一个以 Express 作为后端的 Google OAuth 流程,并且在我的部分代码中使用 res.redirect()。由于某种原因,当我在浏览器中查看路线时,它根本不执行任何操作,甚至不打印任何错误。

console.log 处理 URL 时,我得到一个完整的有效 URL,如下所示:

https://accounts.google.com/o/oauth2/v2/auth?......

我尝试删除重定向代码,因此它只是 res.redirect(url),并且还尝试了各种不同的代码。当我选择 400 这样的代码时,它会显示如下消息:

Bad Request. Redirecting to https://accounts.google.com/o/oauth2/v2/auth?......

我还尝试了 .end() 来结束请求,但它抛出一个错误,指出 TypeError: Cannot read property 'end' of undefined

下面是处理生成身份验证 URL 并将用户重定向到该 URL 的代码部分。

app.get('/url', (req, res) => {
const url = /* generating url */
res.redirect(301, url)
})

我希望它能够将我重定向到该网站,以便我可以授权我的应用程序,但它只是显示一个空页面。

编辑:由于某种原因,它实际上发送了 200 OK 响应!

Screenshot

编辑 2:不,我没有使用 AJAX。

编辑3:如果这很重要的话,这条路线实际上位于express.Router()内部。

编辑4:这里还有一些代码:

// server.js

import express from 'express'
import handler from './handler'

const app = express()
app.use('/auth', handler)
app.listen(4000, () => console.log('> Ready on port 4000'))
// handler.js

import { Router } from 'express'
import bodyParser from 'body-parser'
import cookieParser from 'cookie-parser'

const router = Router()
router.use(bodyParser.json())
router.use(cookieParser())

router.get('/url', (req, res) => {
const url = /* generating url */
res.redirect(301, url)
})

// Other routes

export default router

最佳答案

这个答案非常明显,我不知道为什么我没有早点意识到。经过几个小时的汗水和泪水,我向您呈现答案:

这都是the development proxy I was using的问题。显然它不支持重定向,所以我必须自己编写。现在工作正常。

关于node.js - 表示 res.redirect() 不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54611831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com