我正在构建一个Firebase云函数,它连接到商家的网站并请求一个PaymentIntent对象。
我通过axios提交API调用:
exports.getPaymentIntent = functions.https.onCall(async (data, context) => {
// Initialise dependencies
const axios = require('axios')
const FormData = require('form-data')
// Assemble payload
let formData = new FormData()
formData.append('amount', '10.99')
...
try {
const response = await axios.post('merchant.com/getPaymentIntent', formData, {
headers: {
'X-API-KEY': 'myPrivateKey'
}
})
return response
} catch (error) {
return error
}
})
当我运行该函数时,它崩溃并出现以下axios错误:
未处理的错误RangeError:超过最大调用堆栈大小
我不知道为什么会这样。从请求中删除头文件也不会改变错误消息。
有什么我可以尝试解决这个问题吗?
2条答案
按热度按时间u2nhd7ah1#
我发现解决方案几个答案深here。
我不得不在请求中添加一个额外的头(在
X-API-KEY
头的顶部):'Content-Type': multipart/form-data; boundary=${formData._boundary}
。只将其设置为
multipart/form-data
是不起作用的,因此请确保包含边界。xjreopfe2#
我也遇到了同样的问题,在我的情况下,我通过返回www.example进行了修复 www.example.com 。似乎响应对象很大,当尝试解析它时,Firebase会中断。您可以通过运行
console.log(response)
来确认。