Recuperación de React-Native, falló la solicitud de red. no usar localhost


Tengo una aplicación, que im usando fetch para autenticar usuario. estaba funcionando hasta hace unos días y no he cambiado nada. se acaba de actualizar de react 0.27 a 0.28, not fetch no funciona.

He buscado durante casi 2 días y he leído casi todas las preguntas en stackoverflow. la mayoría de los usuarios que intentan obtener algo de localhost, y cuando lo cambian a la dirección ip real , lo hacen funcionar. pero no estoy buscando nada de localhost, también el código de la mina solía ser trabajo.

Aquí está mi código :

fetch('http://somesite.com/app/connect', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        'language':'en-US',
        'Authorization': 'Bearer ' + access_token,
      },
      body: JSON.stringify({
        uid: uid,
        refresh_token: refresh_token,
        token: access_token,
        device: device_id,
        device_name: device_name,
      })
    })
.then((response) => response.json())
.then((responseData) => {
    console.log(JSON.stringify(responseData.body))
})
.catch((err)=> {
  console.log('Some errors occured');
  console.log(err);
})
.done();

Traté de hacer algunos proyectos nuevos, simple, solo utiliza un ejemplo de búsqueda simple para tutoriales, dio el mismo error. traté de abrir mi sitio web que im tratando de conectarse a él, a través del navegador en el emulador, funciona, pero parece a través de mi, aplicación no se puede conectar a cualquier sitio web / ip. da este error en chrome console:

TypeError: Network request failed
    at XMLHttpRequest.xhr.onerror (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:28193:8)
    at XMLHttpRequest.dispatchEvent (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:14591:15)
    at XMLHttpRequest.setReadyState (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:29573:6)
    at XMLHttpRequest.__didCompleteResponse (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:29431:6)
    at http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:29506:52
    at RCTDeviceEventEmitter.emit (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:13428:23)
    at MessageQueue.__callFunction (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11999:23)
    at http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11906:8
    at guard (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11857:1)
    at MessageQueue.callFunctionReturnFlushedQueue (http://localhost:8081/index.ios.bundle?platform=ios&dev=true&hot=true:11905:1)

En realidad tengo el mismo problema que este usuario aquí: React-native network request siempre falla

ACTUALIZAR : info.plist de xcode

Cualquier ayuda será apreciada!

Author: Community, 2016-06-28

2 answers

Deberías echar un vistazo a este enlace: https://github.com/facebook/react-native/issues/8118

Parece que el problema surgió en React Native 0.28. La solución es "Permitir cargas arbitrarias" en la información.el archivo plist se encuentra en la carpeta ios>build que crea React.

Si abre toda la carpeta ios en xcode, abra esta información.plist file puede crear una nueva clave para Permitir Cargas Arbitrarias y debería solucionar su problema.

Permitir Cargas Arbitrarias

 56
Author: Ahmed Haque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-06 08:28:32

Establece la información.plist no trabaja para mí también. Tratando de ejecutar en iOS.

 0
Author: GustavoSevero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-31 13:49:11