Облачные функции Google обрабатывают ошибки из перекрестного запроса - PullRequest
0 голосов
/ 15 марта 2019

У меня есть приложение javascript, которое выполняет вызовы на стороне клиента для облачной функции Google через HTTPS.Поскольку облачный домен имеет вид https://us -central1-myproject.cloudfunctions.net , это перекрестный запрос.Мой код функции облака возвращает соответствующие заголовки кросс-источника, и все работает нормально.

Но когда выполнение прерывается (из-за тайм-аута или необработанного исключения), Google возвращает свой собственный ответ об ошибке (статус 400, 408 и т. Д.)вне моего контроля, который не включает в себя заголовки перекрестного происхождения.Я хочу обработать эти ошибки.

Тем не менее, похоже, что поведение Chrome, когда это происходит (т. Е. Запрос перекрестного источника, который не одобрен CORS и имеет код состояния не-200), заключается в простом зависаниизапрос навсегда с нулевым указанием на то, что он потерпел неудачу (вкладка сети в Chrome Dev Tools показывает «ожидающий» навсегда).Firefox, otoh, регистрирует ошибку, но маскирует код состояния как 0.

Как правильно обрабатывать вызовы облачных функций, которые не выполняются из JavaScript на стороне клиента?

Я вижу два вариантаздесь:

1) Это действительно ожидаемое поведение в Chrome?И есть ли способ определить, был ли сбой вашего запроса на отправку из разных источников, если ответ не одобрен CORS и возвращает код состояния, отличный от 200? *

2) Можно ли настроить Google Cloud для добавления перекрестного запроса?Исходные заголовки этих ответов об ошибках (400, 408 и т. д.), которые мой код функции не контролирует?

Chrome версии 72.0.3626.121 в Ubuntu 18, fwiw.

...