我正在尝试使用反向代理从第三方API(api.pubgtracker.com)获取数据,以便将CORS标头添加到请求中。
我的index.js看起来像这样:
const functions = require('firebase-functions');
const fetch = require('node-fetch')
exports.findPlayer = functions.https.onRequest((req, res) => {
let nickname = req.query.nickname;
let region = req.query.region;
let mode = req.query.mode;
let requestHeader = {
method: "GET",
headers: {
'my-api-key': 'value-of-my-api-key'
}
}
fetch(`https://cors-anywhere.herokuapp.com/https://api.pubgtracker.com/v2/profile/pc/${nickname}?region=${region}&mode=${mode}`, requestHeader)
.then(response => response)
.then(text => {
res.send(text);
});
});
问题是,通过转到我的云功能,我得到的只是"Error: Could not handle the request"
并查看我看到的日志:
FetchError: request to https://cors-anywhere.herokuapp.com/https://api.pubgtracker.com/v2/profile/pc/VissGames?region=na&mode=solo-fpp failed, reason: getaddrinfo ENOTFOUND cors-anywhere.herokuapp.com cors-anywhere.herokuapp.com:443
这里有什么问题?在获取数据方面,我是一个纯粹的初学者,尽管我试图通过其他人提出的类似问题的解决方案来解决问题,但我无法看到错误。
答案 0 :(得分:1)
我检查了https://cors-anywhere.herokuapp.com/是否有效。您的申请对ENOTFOUND
抱怨cors-anywhere.herokuapp.com:443
。这意味着它无法访问https://cors-anywhere.herokuapp.com/。这意味着它没有正确的网络连接或者problem with your DNS。
如果您提供更多数据,可以提供更多帮助。 (例如:尝试访问其他网址,例如google.com)