Я пытаюсь сделать запрос POST
, используя axios
, к моей облачной функции firebase в форме submit
в приложении реагирования.Но я получаю ошибку '500
' каждый раз, когда я делаю запрос с ответом на html-странице Это приложение лучше всего работает с включенным javascriot.
ПоследнийОбновление:
Похоже, что нет проблем с кодом облачной функции.Скорее проблема реактивного компонента.Я использовал Почтальон для отправки запроса POST
с заголовком prop Content-Type
, установленным на application/json
и отправкой тела в необработанном формате {"email": "example_email"}
, и получил ожидаемый ответ от облачной функции.Но когда я отправил запрос от компонента реагирования выше, я получил ответ в виде файла html, говорящий , приложение работает лучше всего с включенным javascript
Я попытался установить 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();
}
});
});
Фрагмент компонента React-Form-Component
import axios from 'axios'
...
handleSubmit = e => {
e.preventDefault()
const { email } = this.state
axios({
method: 'post',
url: `${process.env.REACT_APP_CLOUD_FUNCTION_ENDPOINT}`,
data: { email: email },
config: {
headers: {
'Content-Type': 'multipart/form-data'
}
}
})
.then(res => {
//do something with reponse here
})
.catch(error => {
console.error(error)
})
}
...
Что-то не так, я делаю в коде или неправильная конфигурация запроса?