Firebase函数Axios范围错误:超出最大调用堆栈大小

r3i60tvu  于 2023-04-30  发布在  iOS
关注(0)|答案(2)|浏览(171)

我正在构建一个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:超过最大调用堆栈大小
我不知道为什么会这样。从请求中删除头文件也不会改变错误消息。
有什么我可以尝试解决这个问题吗?

u2nhd7ah

u2nhd7ah1#

我发现解决方案几个答案深here
我不得不在请求中添加一个额外的头(在X-API-KEY头的顶部):
'Content-Type': multipart/form-data; boundary=${formData._boundary}
只将其设置为multipart/form-data是不起作用的,因此请确保包含边界。

xjreopfe

xjreopfe2#

我也遇到了同样的问题,在我的情况下,我通过返回www.example进行了修复 www.example.com 。似乎响应对象很大,当尝试解析它时,Firebase会中断。您可以通过运行console.log(response)来确认。

相关问题