Я получаю следующую ошибку в браузере, когда запускаю свое приложение реагирования на локальном хосте, которое отправляет полезную нагрузку в функцию Google Firebase:
Доступ к выборке в 'https://< myproject> .cloudfunctions. net / 'from origin' http://localhost:3000' заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
Моя функция Google Firebase имеет следующий код:
exports.<myfunction> = functions.https.onRequest(async (req, res) => {
res.set('Access-Control-Allow-Origin', 'http://localhost:3000');
res.set('Access-Control-Allow-Headers', '*');
console.log(req.body);
res.end()
});
Ошибка, которую я получаю в журнале консоли функций firebase:
SyntaxError: Неожиданный токен # в JSON в позиции 0 в JSON.parse () в createStrictSyntaxError (/ worker / node_modules / body-parser / lib /Типы / json.js: 157: 10) при разборе (/worker/node_modules/body-parser/lib/types/json.js:83:15) по адресу /worker/node_modules/body-parser/lib/read.js:121: 18 в invokeCallback (/worker/node_modules/raw-body/index.js:224:16) в готовом (/worker/node_modules/raw-body/index.js:213:7) в IncomingMessage.onEnd (/ worker/node_modules/raw-body/index.js:273:7) в emitNone (events.js: 111: 20) в IncomingMessage.emit (events.js: 208: 7) в endReadableNT (_stream_readable.js: 1064: 12)
Мой код на стороне клиента, который запускает функцию, следующий:
submit(name) {
fetch('https://< myproject >.cloudfunctions.net/< my function >', {method: 'POST', headers: {"Content-Type": "application/json",
},
body: 'mytoken'
}).then(result => {console.log(result)});
}
Кроме того, все былоработает отлично всего за несколько минут и дней раньше! Как будто эта ошибка начала появляться из ниоткуда.