HttpErrorResonse Неожиданный токен S в JSON в позиции 0 Firebase - PullRequest
0 голосов
/ 21 апреля 2020

Я использую облачные функции Google Firebase.

При доступе к моей облачной функции из клиента я получаю HttpError

SyntaxError: Unexpected token S in JSON at position 0
    at JSON.parse (<anonymous>)
    at XMLHttpRequest.onLoad (http://localhost:4200/vendor.js:13445:51)
    at ZoneDelegate.invokeTask (http://localhost:4200/polyfills.js:13121:35)
    at Object.onInvokeTask (http://localhost:4200/vendor.js:71621:33)
    at ZoneDelegate.invokeTask (http://localhost:4200/polyfills.js:13120:40)
    at Zone.runTask (http://localhost:4200/polyfills.js:12888:51)
    at ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.js:13203:38)
    at invokeTask (http://localhost:4200/polyfills.js:14361:18)
    at XMLHttpRequest.globalZoneAwareCallback (http://localhost:4200/polyfills.js:14398:25)

text: "Sended"

Ниже приведен код моего сервера,

exports.sendMail = functions.https.onRequest((req, res) => {
  cors(req, res, () => {
      .....
      return transporter.sendMail(mailOptions, (erro, info) => {
        if (erro) {
          return res.send(erro.toString());
        }
        return res.send('Sended');
      });
    })
  });

});

Скажите, пожалуйста, что я здесь не так делаю?

1 Ответ

0 голосов
/ 21 апреля 2020

Измените код следующим образом:

exports.sendMail = functions.https.onRequest((req, res) => {


 cors(req, res, () => {


   .....
      return transporter.sendMail(mailOptions, (erro, info) => {
        if (erro) {
          return res.status(500).json({"message":erro.toString()});
        }
        return res.status(200).json({"message":"Sent"})
      });
    })
    });

});

Рекомендуется указывать коды статуса HTTP в ответе на ваши запросы, а также отправлять через него стандартные данные JSON. Я сам всегда отправляю поле «сообщение» для таких запросов.

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