我正在建立一个简单的歌词查找应用程序使用react.js和使用musixmatch应用程序接口。当我请求应用程序接口时,在控制台Error: Request failed with status code 403 at createError (createError.js:16) at settle (settle.js:17) at XMLHttpRequest.handleLoad (xhr.js:62)
中得到以下错误
这是我的componentDidMount()函数
import React, { Component } from 'react';
import axios from 'axios';
const Context = React.createContext();
export class Provider extends Component {
state = {
track_list: [],
heading: "Top 10 Tracks"
}
componentDidMount() {
axios.get(
`https://cors-anywhere.herokuapp.com/https://api.musixmatch.com/ws/1.1/chart.tracks.get?chart_name=top&page=1&page_size=5&country=it&f_has_lyrics=1&apikey=${
process.env.REACT_APP_MM_KEY}`
)
.then(res => console.log(res.data))
.catch(err => console.log(err));
}
render() {
return (
<Context.Provider value={this.state} >
{this.props.children}
</Context.Provider>
);
}
}
export const Consumer = Context.Consumer;
发布于 2021-04-02 16:45:42
状态代码403表示您未被授权。您可能输入了错误的api密钥,或者您的process.env不工作(尝试直接输入api密钥!)。
你确定你需要cors吗?你有没有试过没有?
编辑:
你可以测试你的api密钥是否工作,当你简单地用你的密钥在浏览器中输入url时(没有汽车-任何地方),如下所示:
编辑2:
当我在React应用程序中尝试它时,这是可行的:所以问题一定出在您的process.env实现上。
componentDidMount() {
axios.get(
`https://cors-anywhere.herokuapp.com/https://api.musixmatch.com/ws/1.1/chart.tracks.get?chart_name=top&page=1&page_size=5&country=it&f_has_lyrics=1&apikey=your_api_key`
)
.then(res => console.log(res.data))
.catch(err => console.log(err));
}
https://stackoverflow.com/questions/66915455
复制相似问题