2 回答

TA貢獻1828條經驗 獲得超3個贊
看來你使用cors方法不對。您還應該使用提供的返回任何值response。詳細信息請查看下面。
const cors = require('cors')({origin: true});
exports.sendMessage = functions.https.onRequest((request, response) => {
return cors(request, response, async () => {
try {
const res = await Axios.post(
`https://hooks.slack.com/services/*XXXXXXXXXXXXX*`,
{
blocks: [
{
type: 'section',
text: {
type: 'mrkdwn',
text: 'hello',
},
},
],
},
);
response.status(res.status).json(res.data);
} catch (error) {
response.status(400).json(error);
}
});
});

TA貢獻1811條經驗 獲得超5個贊
實現此目的的方法是將標題“Content-Type”:“application/x-www-form-urlencoded”添加到帖子中。您可以使用您提供的代碼來執行此操作:
const cors = require('cors')
const functions = require('firebase-functions')
const Axios = require('axios')
exports.sendMessage = functions.https.onRequest((request, response) => {
return cors()(request, response, () => {
return Axios.post(
`https://hooks.slack.com/services/*XXXXXXXXXXXXX*`,
{
blocks: [
{
type: 'section',
text: {
type: 'mrkdwn',
text: 'hello',
},
},
],
},
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
}
)
})
})
Slack API 似乎不能很好地處理常規 JSON,這是 Axios 的默認設置,因此這就是需要更改的原因。
希望這能幫您解決這個問題!
添加回答
舉報