Реагирует на родную выборку () 403 статуса - PullRequest
1 голос
/ 22 января 2020

У меня есть конечная точка API, хорошо работающая в почтальоне с опциями ниже

enter image description here enter image description here

Вышеупомянутый запрос может получить 200 статус и получил ответ. Сейчас я пытаюсь реализовать тот же API с React Native с использованием метода fetch.

      fetch('https://example.com/api/user/login', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Token':'xxxxxx-xxxx-xxxx-xxxx-xxxxx'
        },
        body: {
          "useremail": "testuser@example.com",
          "userpassword": "123456"
        },
      })
      .then((response) => response.json())
      .then((responseJson) => {
        console.log(responseJson);
      }).catch((error) =>{
        console.error(error);
      });

Приведенный выше код не работал, и я получаю статус 403.

Ответы [ 3 ]

0 голосов
/ 22 января 2020

Вы пробовали это

Самый простой способ реализовать это - использовать этот атрибут для AndroidManifest.xml, где вы разрешаете все http для всех запросов:

android:usesCleartextTraffic="true"

не стесняйтесь сомнения

0 голосов
/ 22 января 2020

HTTP 403 - это стандартный код состояния HTTP, передаваемый клиентам HTTP-сервером для указания того, что доступ к запрошенному (действительному) URL-адресу клиента по какой-то причине запрещен. Сервер понял запрос, но не выполнит его из-за проблем, связанных с клиентом.

, поэтому для первого шага в вашем почтальоне используйте поддельный пароль пользователя, чтобы увидеть, получите ли вы снова 403, если вы получили, это означает, что у вас возникли проблемы с отправкой собственных исходных данных.

, поэтому вам следует сосредоточиться на своем коде запроса на отправку:

Согласно документам вы можете публиковать подобные сообщения

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

убедитесь, что вы отправляете свой пароль правильно и не пропускаете ничего, например, орфографические ошибки

надеюсь, это поможет вам.

0 голосов
/ 22 января 2020

Вы передаете данные без преобразования их в json, здесь возникнет проблема

  fetch('https://example.com/api/user/login', {
        method: 'POST',
        credentials : 'include',
        headers: {
          'Accept': 'application/json',
          'Content-Type': 'application/json',
          'token':'xxxxxx-xxxx-xxxx-xxxx-xxxxx',
        },
        body: JSON.stringify({ // convert object to json 
          "useremail": "testuser@example.com",
          "userpassword": "123456"
        }) ,
      })
      .then((response) => response.json())
      .then((responseJson) => {
        console.log(responseJson);
      }).catch((error) =>{
        console.error(error);
      });
...