Получить не выполняется с правильными параметрами - React Native

Итак, у меня есть приложение React Native, выполняющее вызовы моего внешнего API через собственный API fetch(). Я сталкиваюсь со странной проблемой, когда мои запросы не обрабатываются fetch() правильно только в одном контексте.

Звонки должны POST к /api/token_login,

Вот как я звоню в приложении:

#/src/services/post.js

import headers from './headers';

const APIURL = '******/api';

export default async (path, data, callback) => {
  try {
    const postData = {
      method: 'POST',
      credentials: 'include',
      headers: new Headers(headers),
      body: JSON.stringify(data)
    };
    const requestURL = `${APIURL}/${path}`;
    const request = new Request(requestURL, postData);
    const response = await fetch(request);
    const res = await response.text();
    if (response.ok) {
      callback(null, res);
    } else {
      const error = res;
      callback(error, null);
    }
  } catch (error) {
    console.log('caught error: ', error);
  }
};


#/src/services/auth.js
import post from './post';

export function TokenLogin(data, callback) {
  post('token_login', data, callback);
}
...other functions

#/src/containers/Login.js
const data = {
  user: {
    auth_token: token,
  },
};
return TokenLogin(data, (err, response) => {
  const res = JSON.parse(response);
... do stuff
};

Эта функция вызывается для componentDidMount при определенных условиях, что является ожидаемым поведением. Однако каждый день или около того он внезапно прекращает посылать запрос на переданный путь и вместо этого отправляет GET в /api/login. Изменение пути, переданного в функцию, изменяет поведение обратно на ожидаемое (то есть, передавая в flurgl отправляет запрос POST .../api/flurgl с телом, переданным правильно. Вот некоторая отладочная информация:

// the logs:
=> Request method: POST url: https://*****/api/token_auth

=> Response object:  
=> Response {type: "default", status: 404, ok: false, statusText: undefined, headers: Headers, …}
bodyUsed: true
headers: Headers {map: {…}}
ok: false
status: 404
statusText: undefined
type: "default"
url: "https://*******/api/login"

0 ответов

Другие вопросы по тегам