Ax ios запрос отображает ответ на iOS, но не работает с android - PullRequest
1 голос
/ 25 февраля 2020

Я использую axios для отправки некоторых данных на сервер в реагирующем режиме, но у меня возникла проблема, мой код работает нормально в IOS, но у меня мало проблем с делом android. Вот мой код, посмотрите на него.

login = () => {
    const { username, password } = this.state;
    let reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    if (username == "") {
      //alert("Please enter Email address");
      this.setState({ email: "Please enter Email address" });
    } else if (reg.test(username) === false) {
      //alert("Email is Not Correct");
      this.setState({ email: "Email is Not Correct" });
      return false;
    } else if (password == "") {
      this.setState({ email: "Please enter password" });
    } else {
      this.openProgressbar();
      axios
        .post(
          CONSTANT.BaseUrl + "user/do-login",
          {
            email: username,
            password: password
          }
        )
        .then(async (response) => {
          if (response.data.type == "success") {
            await AsyncStorage.setItem(
              "full_name",
              response.data.profile.pmeta.full_name
            );
            await AsyncStorage.setItem(
              "user_type",
              response.data.profile.pmeta.user_type
            );
            await AsyncStorage.setItem(
              "profile_img",
              response.data.profile.pmeta.profile_img
            );
            await AsyncStorage.setItem(
              "profileBanner",
              response.data.profile.pmeta.banner_img
            );
            await AsyncStorage.setItem(
              "profileType",
              response.data.type
            );
            await AsyncStorage.setItem(
              "projectUid",
              response.data.profile.umeta.id
            );
            await AsyncStorage.setItem(
              "projectProfileId",
              JSON.stringify(response.data.profile.umeta.profile_id)
            );
            this.setState({ isProgress: false })
            RNRestart.Restart();
          } else if (response.data.type == "error") {
            this.setState({ isProgress: false });
            alert("Please Check Your Email / Password or Check Network ");
          }
        })
        .catch(error => {
          console.log(error);
        });
    }
    Keyboard.dismiss();
  };

В случае IOS он перемещается в .then после ответа, но в ANDROID он входит в .catch

1 Ответ

1 голос
/ 25 февраля 2020

Пожалуйста, измените ссылку с этого: response.data.profile.umeta.id

на это: JSON .strignify (response.data.profile.umeta.id) я думаю, что следует сделать работа для вас.

...