#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. В названии я написал, что использую Физическое устройство.