Облачные функции Google заменяют двойной слеш в URL - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь развернуть cors -where в облачных функциях Google.Я должен предоставить URL после ссылки gcp.

Это выглядит так:

https://us -central1-my-project.cloudfunctions.net / my-function / http://dummy.restapiexample.com/api/v1/employees

, но преобразуется в:

https://us -central1-my-project.cloudfunctions.net / my-function /http:/dummy.restapiexample.com/api/v1/employees

Все двойные слэши после хоста преобразуются в простые.

Я попытался заменить req.url для преобразования http: / в http://, но все равно работать не будет.Может быть, это нужно исправить на уровне веб-сервера.

Вот моя функция в GCP

var cors_proxy = require('cors-anywhere').createServer({
  requireHeader: ['origin', 'x-requested-with'],
  removeHeaders: [
    'cookie',
    'cookie2',
  ],
  // See README.md for other options
});

exports.myFunction = (req, res) => {
  req.url = req.url.replace('/my-function/', '/'); // Strip '/my-function' from the front of the URL, else the proxy won't work.

  return cors_proxy.emit('request', req, res);
};

Кто-нибудь пытался развернуть это в функции без сервера?

1 Ответ

0 голосов
/ 11 июля 2019

Вы используете req.url, который содержит нормализованную версию URL запроса.Вы захотите использовать req.originalUrl, который, как следует из названия, сохраняет исходный запрошенный URL.См. Экспресс документы для получения дополнительной информации.

...