Доступ к серверу Dyson из React Native ios - PullRequest
0 голосов
/ 08 апреля 2019

Я использую Dyson для размещения небольшого фиктивного сервера для своего приложения React Native и пытаюсь получить его с сервера. Сервер работает нормально, и когда я захожу по своему желаемому URL, http://localhost:3000/stations, в моем браузере, я получаю хороший ответ JSON.

В моем действии React Native я получаю Network request failed:

export function fetchStations() {
  return dispatch => {
    dispatch({ type: "GET_STATIONS_START" });
    fetch("http://localhost:3000/stations")
      .then(res => {
        return res.json();
      })
      .then(json => {
        dispatch({ type: "GET_STATIONS_SUCCESS", payload: json.stations });
      })
      .catch(error => {
        console.warn(error);
        dispatch({ type: "GET_STATIONS_FAILURE", payload: error });
      });
  };
}

Работает использование статического локального URL, и, скажем, работает API Карт Google (хотя это не то, что мне нужно, а просто пример API).

Я думаю, что, возможно, я неправильно называю URL, но он работает в браузере, так что это кажется сомнительным. Моя догадка заключается в том, что это связано с тем, что iOS не нравится http-запросы (только принимает https), если вы не установили какие-либо настройки где-то (я прошел через это в нативной разработке для iOS).

Если это проблема, как я могу это исправить из React Native? Или в чем собственно проблема?

PS. Я использую dyson, а не json-server, потому что по какой-то причине я не могу заставить работать json-server. Смотрите мой другой пост. Где-то здесь:)

1 Ответ

0 голосов
/ 09 апреля 2019

Я понял это.Устройство (симулятор) не имеет доступа к localhost, поэтому мне пришлось установить URL-адрес на http://127.0.0.1:3000/stations, и он работает как сон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...