【发布时间】:2018-10-28 06:51:12
【问题描述】:
我创建了一个使用 json API 的登录页面。登录页面在成功验证后生成一个令牌,并将用户引导到一个由三个下拉框组成的页面。在只关注其中一个下拉框时,我试图让下拉框根据其令牌显示客户端的用户名。
登录页面从另一个对用户进行身份验证的 React JS 页面调用一个函数。
功能:
getToken() {
// Retrieves the user token from localStorage
return localStorage.getItem('id_token')
}
在包含下拉框的登录页面中,我有以下代码:
componentDidMount() {
fetch('http://theClientAPI:1111/api/clients', {
method: 'GET',
headers: {
'Content-type': 'application/json',
'Authorization': `Bearer ${this.getToken()}`
},
})
.then(results => results.json())
.then(data => this.setState({ data: data }))
}
在 render() 部分,我有以下内容:
<div>
<select className="custom-select" id="clientName">
{ this.state.data.map(item =>(
<option key={item.clientName}>{item.clientName}</option>
))
}
</select>
</div>
错误出现在我的 Fetch 的这一行:
'Authorization': `Bearer ${this.getToken()}`
我可以就我做错了什么寻求帮助吗?如果您需要更多信息,请告诉我。我在下面发布了登录和身份验证页面背后的代码:
登录页面:https://codepen.io/lkennedy009/pen/GdYOYe?editors=0010#0 认证服务页面:https://codepen.io/lkennedy009/pen/xjyPMY
【问题讨论】:
-
this.getTokens() 应该返回什么。还有什么错误显示?
-
尝试通过这种方式调用函数
${this.getToken.bind(this)}
标签: javascript json reactjs api