获取请求中的错误不会停止功能

我已经在我的网站上实现了 firebase 登录,我将信息发送到我的服务器。我在那里创建会话和 csrf 令牌。


但我发现如果我的 csrf 不匹配,我会收到错误,但该函数会继续运行,就像登录成功一样。


这是代码:


postIdTokenToSessionLogin("/sessionLogin", idToken, csrfToken).then(

      function() {

        // Redirect to profile on success.

        console.log("login succesful"); //this gets logged even if "postIdTokenToSessionLogin" gets caught 


        // window.location.assign("/profile");

      },

      function(error) {

        console.log(error); //i need this to run


        window.location.assign("/");

      }

    );



postIdTokenToSessionLogin = async function(url, idToken, csrfToken) {

  // POST to session login endpoint.

  const data = {

    idToken,

    _csrf: csrfToken

  };

  console.log(data);


  options = {

    method: "POST",

    body: JSON.stringify(data),

    headers: {

      "Content-Type": "application/json"

    }

  };

  // POST to session login endpoint.

  return fetch(url, options).catch(err => {

     throw err; //---------here i do get the error, 

  });

};



我哪里错了?


MYYA
浏览 80回答 1
1回答

PIPIONE

您必须依赖ok以下属性Response:fetch('https://httpbin.org/status/500').then(res => {    if (res.ok) {        return res;    } else {        throw res;    }}).catch(err => {    console.error('Error: ', err.status);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5