Почему моя облачная функция Google вызывает проблемы с политикой CORS, когда я добавляю журнал консоли со ссылкой на переменную? - PullRequest
0 голосов
/ 04 мая 2019

У меня есть базовая облачная функция node.js.Он принимает запрос и просто возвращает тело сообщения;это не работает правильно, и я пытаюсь отладить с журналами консоли.

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */
exports.helloWorld = (req, res) => {
  res.set('Access-Control-Allow-Origin', '*');
  console.log("req: ");
  if (req.method === 'OPTIONS') {
    // Send response to OPTIONS requests
    res.set('Access-Control-Allow-Methods', 'GET');
    res.set('Access-Control-Allow-Headers', 'Content-Type');
    res.set('Access-Control-Max-Age', '3600');
    res.status(204).send('');
  } else {
    let message = req.query.message || req.body.message || 'Hello World!';
    let rets ={};
    rets['message'] = message;
    res.status(200).send(JSON.stringify(rets));
  }

};

Выше работает нормально.Но если я изменяю строку журнала консоли на это:

  console.log("req: " + JSON.stringify(req) );

, я получаю следующую ошибку:

Доступ к выборке в 'https://us -central1-delta-xxxxx-1111111.cloudfunctions.net/getEvents 'from origin' http://localhost:3000' заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.

Я просто не могу понять, почему оператор консоли может повлиять на CORS.Я добавил проверки в приведенном выше коде, чтобы попытаться исправить эти проблемы с CORS

РЕДАКТИРОВАТЬ 1:

Я заметил, что не получаю ошибку CORS, если вместо этого консоль регистрирует тело сообщениязапрос?Ниже работает нормально

  console.log(JSON.stringify(req.body) );

1 Ответ

0 голосов
/ 04 мая 2019

Попробуйте включить режим CORS на стороне клиента.

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