Я тестирую некоторые облачные функции Google локально, создав небольшое тестовое приложение на angular и облачную функцию. Я пытаюсь прочитать ответ обратно из Облако-функции, когда я делаю пост-запрос. Облачная функция затем возвращает ошибку с данными внутри нее, а не только с фактическими данными. Любопытно, что если я не подпишусь на ответ сервера, то я никогда не увижу ошибку в консоли, то есть это должна быть настройка самой облачной функции. Однако я скопировал и вставил код облачной функции прямо из документации. Пожалуйста, помогите.
TL; DR: Http Cloud-функция, возвращающая ошибку вместо данных, почему?
Вот код для функции облака:
exports.helloWorld = functions.https.onRequest((request, response) => {
response.header('Access-Control-Allow-Origin', '*');
response.status(200).send('poop');
});
Вот код для тестового поста:
test() {
var req = this.http
.post(
'http://localhost:5000/merchantapi-b7b17/us-central1/helloWorld',
JSON.stringify({ poop: 'poop' })
)
.subscribe(_val => {
console.log(_val);
});
}
Вот ошибка, которую я получаю на консоли:
HttpErrorResponse
error: {error: SyntaxError: JSON Parse error: Unexpected identifier "poop", text: "poop"}
headers: HttpHeaders {normalizedNames: Map, lazyUpdate: null, lazyInit: function}
message: "Http failure during parsing for http://localhost:5000/merchantapi-b7b17/us-central1/helloWorld"
name: "HttpErrorResponse"
ok: false
status: 200
statusText: "OK"
url: "http://localhost:5000/merchantapi-b7b17/us-central1/helloWorld"
HttpErrorResponse Prototype
defaultErrorLogger — core.js:6014
handleError — core.js:6066
next — core.js:40558
(anonymous function) — core.js:35336
__tryOrUnsub — Subscriber.js:185
next — Subscriber.js:124
_next — Subscriber.js:72
next — Subscriber.js:49
next — Subject.js:39
emit — core.js:35298
run — zone-evergreen.js:124
onHandleError — core.js:39735
runTask — zone-evergreen.js:171
invokeTask — zone-evergreen.js:465
timer — zone-evergreen.js:2650
defaultErrorLogger — core.js:6014
Как видите, ошибка содержит данные, и я могу использовать это, но я хотел бы понять, почему он отправляет ошибку и как ее обработать sh.