到Firebase-Cloud-Function端点的发布请求上收到“ 500 Internal Server Error”

时间:2019-05-26 18:58:04

标签: javascript reactjs firebase google-cloud-functions axios

我正在尝试使用POST向React应用程序中表单axios上的Firebase云函数发出submit请求。但是,每当我发出带有html页面响应的请求时,都会出现“ 500”错误。 此应用在启用Javascriot的情况下效果最佳。

  

最新更新:

     

看来云功能没有问题   码。而是更多的反应组件问题。我用邮递员发送   标头属性为POST的{​​{1}}请求被设置为Content-Type   然后以原始格式application/json发送正文,   来自云功能的预期响应。但是当发送来自   上面的react组件,我得到一个HTML文件响应,说该应用   在启用javascript的情况下效果最佳

我曾尝试将{"email": "example_email"}Content-Type都设置为Application/json,因为我怀疑这是一个问题,但还是没有运气。

以下是我对云功能的代码,并对提交表单做出反应:

云功能

multipart/form-data

反应形式组件代码段

const functions = require('firebase-functions');
const cors = require('cors')({ origin: true })

const runThisFunc1 = require(./libs/runThisFunc1);
const runThisFunc2 = require(./libs/runThisFunc2);

exports.wizardFunc = functions.https.onRequest((request, response) => {

   cors(request, response, () => {
     let email = request.body.email;
     try {
       return runThisFunc1(email)
        .then(data => {
          console.log("Word Done by 1!");
          return runThisFunc2(data);
        })
        .then(res => {
          console.log("Word Done by 2!");
          return response.status(200).send("Success");
        })
        .catch(err => {
          console.error("Error: ", err.code);
          return response.status(500).end();
        });
     }catch(err) {
       return response.status(400).end();
     }
   });

});

我在代码中做错了什么,还是请求配置错误?

1 个答案:

答案 0 :(得分:-1)

不确定为什么要这么做

 const { email } = this.state

您可以替换为并尝试

 const email = this.state