Ошибка сетевого подключения — реагируйте самостоятельно с помощью интерфейса командной строки expo

#node.js #mongodb #react-native #axios #expo

Вопрос:

Я создаю API и собственное приложение для реагирования. Сервер работает хорошо (протестирован с почтальоном), но приложение не вызывает сервер. Он блокирует, когда axios должен отправить запрос на публикацию. Я также попытался ввести ip-адрес вместо localhost, но это тоже не сработало. (ВОТ МОЙ КОД)

  const LoginScreen = ({ navigation }) => {
  const [hidePassword, setHidePassword] = useState(true);
  const [message, setMessage] = useState();
  const [messageType, setMessageType] = useState();

  const handleSubmit = (credentials, setSubmitting) => {
    handleMessage(null);
    const url = "http://192.168.1.110:5000/bankrate/login/login";
    axios
      .post(url, credentials)
      .then((res) => {
        const result = res.data;
        const { message, status, data } = resu<

        if (status !== "SUCCESS") {
          handleMessage(message, status);
        } else {
          navigation.navigate("HomeScreen", { ...data[0] });
        }
        setSubmitting(false);
      })
      .catch((error) => {
        console.log(error);
        setSubmitting(false);
        handleMessage(
          "An error occurred! Check your network connection and try again!"
        );
      });
  }; 
 

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

1. Итак, вы создали серверную программу. То, что мы видим здесь, — это код клиентского приложения, которое взаимодействует с сервером?

2. Есть ли какая-то особая причина, по которой вы используете Axios? JavaScript имеет хороший API выборки, который может выполнить эту работу: developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

Ответ №1:

Вместо этого используйте API выборки JavaScript:

 const handleSubmit = (credentials,setSubmitting) => {
fetch("http://192.168.1.110:5000/bankrate/login/login", {
method: "post",
headers: { "Content-Type": "insert-mime-type-here (see below)" }
body: // whatever you're sending to the server
}}).then((response) => { if (response.status() === 400) { 
// return either response.json() or response.body() or whatever (see below for details) 
else {
return Promise.reject();
}).then((data) => { // do whatever you want to with the data you get from the server }).catch((error) => // promise rejected);
 

Используемый вами тип MIME-это тип MIME всего, что вы отправляете на сервер.

Если сервер отвечает объектом JSON, используйте response.json(), и тогда данные будут объектом JavaScript. Если сервер ответит чем-либо еще, используйте response.text (), и тогда данные будут текстовыми.