Reactjs 为什么我从Marvel API获得InvalidCredentials错误?
我正在用CreateReact应用程序和MarvelToMarvelAPI构建一个简单的应用程序。应用程序只需要显示字符列表。这是我第一次尝试这样做,所以我对环境文件不是很熟悉 我在Reactjs 为什么我从Marvel API获得InvalidCredentials错误?,reactjs,api,create-react-app,Reactjs,Api,Create React App,我正在用CreateReact应用程序和MarvelToMarvelAPI构建一个简单的应用程序。应用程序只需要显示字符列表。这是我第一次尝试这样做,所以我对环境文件不是很熟悉 我在/src中有一个.env文件,其中包含这两个键,没有其他内容: REACT\u APP\u PUBLIC\u KEY='publicKey' REACT\u APP\u PRIVATE\u KEY='privateKey' 同样在/src中,我有/config/config.jsconfig.js然后导入到App.j
/src
中有一个.env
文件,其中包含这两个键,没有其他内容:
REACT\u APP\u PUBLIC\u KEY='publicKey'
REACT\u APP\u PRIVATE\u KEY='privateKey'
同样在/src
中,我有/config/config.js
config.js
然后导入到App.js
config.js
如下所示:
const marvelURL = 'https://gateway.marvel.com/v1/public/',
apiKey = `apikey=${process.env.REACT_APP_PUBLIC_API_KEY}`;
const getCharacters = (options) => {
const {
offset,
name,
exactMatch,
sortName,
limit,
} = Object.assign({
offset: 0,
name: '',
exactMatch: false,
limit: 20,
}, options);
let url = `${marvelURL}characters?${apiKey}&offset=${offset}&orderBy=${sortName}name&limit=${limit}`;
if (name) {
if (exactMatch) {
url += `&name=${name}`;
} else {
url += `&nameStartsWith=${name}`;
}
}
return fetch(url)
.then(res => res.json())
.then((resObj) => {
try {
if (resObj.code === 200) {
if (offset > resObj.data.total) {
throw new Error('This page does not exist.');
} else {
const pages = Math.floor(resObj.data.total / limit);
return {
characters: resObj.data.results,
maxPage: resObj.data.total % limit > 0 ? pages + 1 : pages,
};
}
} else {
throw new Error(`Bad response from API. Status code ${resObj.code}.`);
}
} catch (e) {
console.error(e);
return {
characters: [],
maxPage: 0,
};
}
});
}
export { getCharacters };
如果您试图点击浏览器中的URL会发生什么?@pritesh,控制台中的一个错误表示我未经授权。我的api密钥显示为未定义。因此,config.js和.env之间似乎存在断开连接,但我不知道如何连接它们。您正在导入的config.js中可能存在键入错误
apikey=${process.env.REACT\u APP\u PUBLIC\u API\u KEY}
但在环境文件中,您的API密钥名称是REACT\u APP\u PUBLIC\u KEY
在config.jsapikey中更改为该名称=${process.env.REACT\u APP\u PUBLIC\u KEY}
这样做。apiKey
仍在返回未定义的。。。