Запрос API работает в Postman, но не в методе fetch () приложения React Native - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь сделать метод fetch() в моем приложении React Native:

    return fetch(url, {
      method: method,
      headers: {
        'Accept': 'application/json',
        ...headers
      },
      body: body
    })

Здесь url равно <IP address>:<port>/api/token

method равно 'POST'

headers равно {Content-Type: "application/x-www-form-urlencoded"}

и body равно

grant_type=password&username=<username>&password=<password>&pushtoken=&primaryhost=<primary host IP>&primaryport=<primary host port>&secondaryhost=<secondary host IP>&secondaryport=<secondary host port>&osscustomer=103&deviceid=<device ID>&version=1.0&osversion=9&deviceversion=1.0

Когда я использую эти значения в запросе почтальона, он работает нормально, но когда я запускаю метод fetch() в моем приложении React Native выдает ошибку e = TypeError: Network request failed at XMLHttpRequest.xhr.onerror.

Кто-нибудь знает, почему это может быть?

1 Ответ

2 голосов
/ 02 февраля 2020

изменить 'Accept' на Accept без единого числа. В последних android версиях http запросы по умолчанию запрещены. Посмотрите этот пост для получения дополнительной информации о разрешении http-запроса: Как разрешить все типы сетевых подключений HTTP и HTTPS в Android (9) P ie?

Используйте следующий формат:

fetch('https://mywebsite.com/endpoint/', {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    firstParam: 'yourValue',
    secondParam: 'yourOtherValue',
  }),
});

Лучше использовать ax ios для запросов http / https: ax ios package

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