javascript 如何在react中处理服务器响应结果

bd1hkmkf  于 2023-03-06  发布在  Java
关注(0)|答案(1)|浏览(131)

我正在尝试从我的服务器从一个React应用程序获取用户数据。
登录工作正常,我可以在浏览器中看到响应对象,包括访问令牌。
此函数返回的response.json

const handleLogin = async () => {
    try {
      const response = await fetch("/url/api/manager/login", {
        method: "POST",
        body: JSON.stringify({ email, password }),
        headers: {
          "Content-Type": "application/json",
        },
      });
      const body = response.json();
      console.log(body);
      const token = body.token;
      console.log(token);
      setAccessTokenCookie(token);
      console.log(accessToken);
      if (response.ok) {
        //const bodyText = response.text();
        //console.log(bodyText);

        handleLoginBool();
        console.log("Login successful");
      } else {
        console.log(response);
        console.log("Login failed");
      }
    } catch (error) {
      console.error("Error logging in:", error);
    }
  };

看起来像这样:

[Log] Promise (LoginForm.jsx, line 54)
result: Object
manager: {_id: "6366495804b9c34feae0074d", name: "ManagerForTestMessageAddressedTo1", email: "ManagerForTestMessageAddressedTo1@web.de", password: "$2a$10$rHSfGfSlHWPJvFrT7vyBmeDB5K48K01pxUtgQCgK3IOfyz1FqkgTS", street: "default", …}
refresh_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzY2NDk1ODA0YjljMzRmZWFlMDA3NGQiLCJpYXQiOjE2Nzc4ODU5MTh9.8EaHGyWHvSepjYGOZKLv_mGgIj03WfKBKB…"
token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzY2NDk1ODA0YjljMzRmZWFlMDA3NGQiLCJpYXQiOjE2Nzc4ODU5MTh9.SWVp670AOHUboO33KvTpgfL60ljmnfAYWu…"
Object Prototyp
status: "resolved"
Promise Prototyp

但是我不知道也找不到任何地方可以访问令牌并将其赋给变量。
正如您在函数中看到的,我尝试通过ContextAPI将令牌保存在cookie中。
问题是,我不知道该如何处理这个令牌。我尝试了所有我能想到的方法......如果能得到一些帮助,我将非常感激。谢谢你读到这篇文章。
问题是,我不知道该如何处理这个令牌。我尝试了所有我能想到的方法......如果能得到一些帮助,我将非常感激。谢谢你读到这篇文章。

mqkwyuun

mqkwyuun1#

根据@丹尼尔A.白色的评论-
response.json()返回一个承诺,因此您需要添加一个await

const body = await response.json();

相关问题