无'Access-Control-Allow-Origin' - 火力基础功能



我使用firebase函数创建了一个GET请求。我可以使用Postman接收数据,但不能从我的FE应用程序接收数据。

当访问端点时,我得到这个错误

from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

My FE Code,

pay() {
this.http.get(this.settings.createPaymentRequest).subscribe(res => {
console.log(res);
})
}

服务器代码,

exports.createRequest = functions.https.onRequest((req, res) => {
const cors = require('cors')({
origin: '*'
});
...
var options = {
method: 'POST',
uri: 'https://test.instamojo.com/api/1.1/payment-requests/',
form: payload,
headers: insta_headers,
json: true
};
return rp(options)
.then(function (response) {
console.log(response);
if (response.success) {
db.collection('PAYMENT_REQUESTS').doc(response.payment_request.id).set({
LONG_URL: response.payment_request.longurl,
REQUEST_CREATED_AT: response.payment_request.created_at,
PAYMENT_STATUS: "STARTED"
}, {
merge: true
}).then(function () {
response.setHeader(headers);
res.status(200).send({
STATUS: "SUCCESS",
RESPONSE: response.payment_request.longurl
});
})
.catch(function (error) {
res.status(200).send({
STATUS: "ERROR",
RESPONSE: error
});
});

} else return res.status(403).send('Forbidden!');
})
.catch(function (e) {
console.log("ERROR" + e);
res.status(200).send({
STATUS: "ERROR",
RESPONSE: e
});
});
});

请指导我如何解决这个问题。

看起来你创建了这个

const cors = require('cors')({
origin: '*'
});

但不要将其注入任何地方(除非它是...的一部分)

应该有这样的东西

app.use(cors())

(或者你的框架怎么做)

在再次尝试使用浏览器之前,您可以检查postman中的响应头,看看您正在寻找的cors头是否存在:

像这样:

Access-Control-Allow-Origin: *

相关内容

  • 没有找到相关文章

最新更新