2016-06-28 2 views
18

У меня есть приложение, которое im использует fetch для аутентификации пользователя. он работал до нескольких дней назад, и я ничего не меняю. просто обновлен от реакции 0,27 до 0,28, а не извлечения не работает.React-Native fetch, сетевой запрос не выполнен. не используя localhost

Я искал почти 2 дня, и я прочитал почти все вопросы в stackoverflow. большинство пользователей пытаются извлечь что-то из localhost, и когда они меняют его на фактический IP-адрес, они заставляют его работать. , но я не получал ничего от localhost, также использовался мой код.

вот мой код:

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();

я попытался сделать несколько новых проектов, простые, просто использовал простой пример выборки Фро учебники, он дал такую ​​же ошибку. Я попытался открыть свой сайт, который я пытаюсь подключиться к нему, через браузер в эмуляторе, он работает, но, похоже, через мое приложение не может подключиться к любому веб-сайту/ip. он дает эту ошибку в хромированной консоли:

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) 

на самом деле у меня есть такая же проблема, как этот пользователь здесь: React-native network request always fails

UPDATE: info.plist from xcode

любая помощь будет оценен по достоинству!

+0

Что вы имеете под 'NSAppTransportSecurity' в файле info.plist для вашего приложения? –

+0

Спасибо за ваш ответ. Я добавил скриншот к основному сообщению. также вы можете увидеть это здесь http://i.stack.imgur.com/vvqMk.png – Ataomega

+0

@Ataomega Вы пробовали перезагрузить компьютер? У меня была такая же проблема, и простой перезапуск ее исправил. –

ответ

46

Вы должны проверить эту ссылку: https://github.com/facebook/react-native/issues/8118

Похоже, проблема возникла в React Native 0,28. Решение заключается в «Разрешить произвольные нагрузки» в файле info.plist, найденном в папке ios> build, созданной React.

Если вы открываете всю папку ios в xcode, тогда откройте этот файл info.plist, вы можете создать новый ключ для разрешения произвольных нагрузок, и он должен исправить вашу проблему.

Allow Arbitrary Loads

+1

Проблема решена уже, спасибо в любом случае. – Ataomega

+1

@Ataomega как вы исправили эту проблему. Я столкнулся с тем же in andriod – Carlos

+0

@Carlos как последний ответ говорит ... – Ataomega