使用axios响应GET和POST请求



在我的应用程序中,我需要GET一些数据(我为其提供本机authtoken(。

然而,在同一事件中,我还需要POST第二个令牌,由几个端点使用,用于外部后端api调用。

如何使用axios使用下面的工作代码POST这个第二个令牌?

我应该扩展授权承载还是简单地将POSTSpotify令牌作为字符串数据?为什么呢

我的代码:

getData(event) {
const {token} = this.props.spotifyToken
const options = {
url: `${process.env.REACT_APP_WEB_SERVICE_URL}/endpoint`,
method: 'get',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${window.localStorage.authToken}`
}
};
return axios(options)
.then((res) => {
console.log(res.data.data)
})    
.catch((error) => { console.log(error); });
};

对于应用于代码的异步等待,情况如下。

async getData(event) {
const {token} = this.props.spotifyToken
let getRes = await axios.get(`${process.env.URL}/endpoint` {
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${window.localStorage.authToken}`
}
}
let postRes = await axios.post(`${process.env.URL}/endpoint` {
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${window.localStorage.authToken}`
}
}
console.log(getRes.data.data);
console.log(postRes.data.data);
};

在这个特定的情况下,在后端需要一个令牌来获取数据,我发现在url传递令牌更合适,如下所示:

@endpoint.route('/endpoint/<select>/<user_id>/<token>', methods=['GET'])
def endpoint(name, user_id, token):
# business logic

和:

const options = {
url: `${process.env.REACT_APP_WEB_SERVICE_URL}/endpoint/${select}/${userId}/${this.props.spotifyToken}`,
method: 'get',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${window.localStorage.authToken}`
}
};

否则,对于POST和GET,后端代码将运行两次,这在我的情况下是不需要的。

最新更新