fetch 请求response status为401时候获取不到 如何进行处理?

//fetch 请求 这个接口 会得到401状态 我要对401状态进行处理 比如弹出一句话 但是拿不到这个状态 不知道什么原因 network里看的response status是401

let headers = {

    'Content-Type': 'application/json',
    'Authorization': localStorage.getItem("basic")==null ? "" : "Basic "+localStorage.getItem("basic"),
    'Accept-Language': 'en'

};
let urL = "http://47.88.136.37:8682/recommendChannels?identityId=null&page=0&size=5";

fetch(baseUrl, {method: 'GET', headers: headers,mode:"no-cors"}).then(function(res) {
    console.log(res.status)
    console.log(res)
      if (res.ok) {
        alert("Perfect! Your settings are saved.");
      }else{
          console.log(res.type)
          console.log(res)
          if(res.status == 401){
              alert("Oops! You are not authorized.");
              //do something
          }
      }
}).catch(function(e){
    console.log(e)
      alert("Error submitting form!");
});![图片描述][1]
阅读 11.3k
3 个回答

应该写在catch里面

fetch('some-url')
  .then(response => {
    if (response.ok) {
      return response.json()
    } else {
      return Promise.reject({
        status: response.status,
        statusText: response.statusText
      })
    }
  })
  .catch(error => {
    if (error.status === 404) {
      // do something about 404
    }
  })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题