Получение ошибки типа: Сбой сетевого запроса при отправке на сервер моего узла с физического устройства

#android #node.js #react-native #post #android-manifest

Вопрос:

Чего Я Хочу:

  • ОТПРАВЬТЕ некоторые учетные данные на сервер моего узла при регистрации и сохраните пользователя в MongoDB

Что Случилось:

  • Ошибка типа: Сбой сетевого запроса при отправке запроса от React Native

Что я сделал:

  • Измените локальный хост на IP — адрес моей машины
  • Добавить android:usesCleartextTraffic=»true» в манифесте Android
  • Используемый IP-адрес, сгенерированный ngork
  • Проверил мой серверный код с помощью ПОЧТАЛЬОНА, он работает нормально!

Реагировать на собственный КОД:

ОТПРАВИТЬ запрос:

 fetch('http://MY_MACHINE_IPv4:3001/signup', {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    fullName: fullName,
    email: email,
    phone: phone,
    password: pass,
  }),
})
  .then(response => response.json())
  .then(data => console.log(data));
 

Код узла:

 router.post("/signup", async (req, res) => {
    const { fullName, email, phone, password } = req.body
  console.log("The Email in request is ", email)
  console.log("The Password in request is ", password)
  try {
    const user = new User({ fullName, email, phone, password })
    console.log("USER BEING SAVED")
    await user.save()
    const token = jwt.sign({ userId: user._id }, jwtKey)
    res.send({ token: token })
  } catch (err) {
    res.status(422).send(err.message)
  }
})
 

Ошибка:

ПРЕДУПРЕДИТЬ о возможном отклонении необработанного обещания (идентификатор: 0): Ошибка типа: Сбой сетевого запроса Ошибка типа: Сбой сетевого запроса при анонимном (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:25389:33) при подаче заявки (родной) при анонимном (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:29526:26) в _callTimer (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:29446:17) во время вызовов (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:29647:19) при применении (родной) при __функции вызова (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:6319:36) в анонимном (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:6043:31) у __охранника (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:6270:15) при вызове функции Returnflushedqueue (http://localhost:8081/index.bundle?platform=androidamp;dev=trueamp;minify=falseamp;app=com.healthappamp;modulesOnly=falseamp;runModule=true:6042:21)

Ответ №1:

Если вы используете эмулятор Android,эмулятор Android всегда отправляет кодировку: utf-8 в заголовке. поэтому вам нужно изменить настройку nginx, чтобы разрешить этот дополнительный заголовок

Комментарии:

1. В названии я написал, что использую Физическое устройство.