我在Java中设置了一个API。但是现在我正在reactjs开发客户。身份验证使用JWT令牌。与Postman一起,当我向身份验证URL发送邮政请求时,它会将我返回一个JWT令牌:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZHVzZXIiOjEsImlzcyI6ImF1dGgwIn0.0BXAQl-yMIDeAU6Emppo6LBIm1RAdLa9vDWbQkdLs1o
那正是我想要的。但是我不知道如何在reactjs进行调用后如何检索字符串。
我试图使用诺言并写下:
.then((data) => {
data.text().then((token) => {
alert(token)
})
})
但是它什么也没回报,我有一个没有文字的警报。如何从获取的对象响应中获取字符串?
也许您后端服务器返回Content-Type=application/json
?而text()
方法尝试使用json()
。
尝试以下操作:
fetch('/next/page')
.then(function(response) {
return response.text();
})
.then(function(text) {
// <!DOCTYPE ....
console.log(text);
});
我正面临同一问题,并能够使用此功能来获得令牌:
.then(res => res.json()).then(res => {
let token = res.token;
console.log("token: ", token);
});
来源:https://developer.mozilla.org/en-us/docs/web/api/body
该响应对象上的text()方法是您要寻找的。
使用await
语法我认为比等待then()
更简单,this
在this.setState()
中按预期进行范围。
async getStrResponse() {
const response = await fetch('myController/GetStringTest');
const stringResponse = await response.text();
this.setState({ someStr: stringResponse, loading: false });
}