我正在尝试使用firebase函数的React应用,这里是我的代码:
handleDonate(key){
const url = 'https://us-central1-bora-ajudar-73ebc.cloudfunctions.net/api/donate'
const dados = {teste : 'oi'}
const options = {
method: 'POST',
headers: {'Access-Control-Allow-Origin' : '*'},
data : dados,
url
}
axios(options)
.then(data=>{
console.log(data)
})
.catch(err =>{
console.log(err)
})
}
然后,我的index.js函数
app.use(cors({origin: true}));
admin.initializeApp()
const checkoutUrl = 'https://pagseguro.uol.com.br/v2/checkout/payment.html?code='
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))
app.get('/api', (req,res)=>{
res.send('Server side')
})
app.post('/donate',(req,res)=>{
request({
uri: 'https://ws.pagseguro.uol.com.br/v2/checkout?',
method: 'POST',
form:{
token: token,
email: email,
currency: 'BRL',
itemId1: 'idCampanha',
itemDescription1: 'Doação',
itemQuantity1: '1',
itemAmount1: '2.00'
},
headers:{
'Content-Type': 'application/x-www-urlencode; charset=UTF8',
'Access-Control-Allow-Origin': 'true'
}
})
.then(data=>{
parse(data, (err,json)=>{
res.setHeader('Access-Control-Allow-Origin', 'true')
res.send({
url: checkoutUrl+json.checkout.code[0]
})
})
})
})
当我运行它时,控制台显示此错误:
无法加载https://us-central1-bora-ajudar-73ebc.cloudfunctions.net/api/donate:所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问来源“ https://bora-ajudar-73ebc.firebaseapp.com”。响应的HTTP状态码为500。
我知道这与向我的函数发送POST以及我的函数发送另一个POST有关,但是我不知道到底是什么。
答案 0 :(得分:0)
问题是Firebase不允许免费计划中的外部API请求。