ReactJ从Api Fetch获取令牌字符串



我在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()更简单,thisthis.setState()中按预期进行范围。

async getStrResponse() {
  const response = await fetch('myController/GetStringTest');
  const stringResponse = await response.text();
  this.setState({ someStr: stringResponse, loading: false });
}

相关内容

最新更新