在我的应用程序中,我需要GET
一些数据(我为其提供本机authtoken(。
然而,在同一事件中,我还需要POST
第二个令牌,由几个端点使用,用于外部后端api调用。
如何使用axios
使用下面的工作代码POST
这个第二个令牌?
我应该扩展授权承载还是简单地将POST
Spotify令牌作为字符串数据?为什么呢
我的代码:
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,后端代码将运行两次,这在我的情况下是不需要的。