Экспресс res.redirect () ничего не делает - PullRequest
0 голосов
/ 10 февраля 2019

Я работаю над потоком Google OAuth с Express в качестве бэкэнда, и в части своего кода я использую 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-адреса аутентификации и перенаправление на него пользователя.

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

1 Ответ

0 голосов
/ 10 февраля 2019

Этот ответ очень очевиден, и я не уверен, почему я не понял раньше.После нескольких часов пота и слез я представляю вам ответ:

Это была проблема с прокси-сервером разработки, который я использовал .По-видимому, он не поддерживает перенаправления, поэтому мне пришлось написать свой собственный.Работает нормально сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...