获取不在ios中发送Authorization标头

时间:2017-12-20 04:34:18

标签: react-native react-native-ios

我使用两个fetch函数,一个用于登录另一个从我的API获取数据。

登录工作正常但第二次获取会在ios中引发错误。它在android上工作正常

未从ios

发送授权标头

这是我的代码:

import { Alert } from 'react-native';
import { rootUrl } from './index';
import { translate } from '../../config/translation';
import store from './../store';
import NavigatorService from '../../config/navigator';

export default function fetchTree(Authorization) {
  fetch(`${rootUrl}/tree`, {
    method: 'GET',
    headers: {
      Authorization,
      'Content-Type': 'application/json',
    },
  })
    .then((response) => {
      console.log(response);
      store.dispatch({ type: 'loading', payload: false });
      if (response.status !== 200) {
        Alert.alert(
          translate('Access Denied'),
          translate('You are not Authorized to view this content'),
          [{ text: translate('OK') }],
          {
            cancelable: false,
          },
        );
        return 0;
      }
      return response.json();
    })
    .then((responseJson) => {
      if (responseJson !== 0) {
        const tree = responseJson[0].tree;
        NavigatorService.reset('Home', { tree });
      }
    });
}

这是我从服务器获得的响应:

enter image description here

解决方案:

好吧,经过3天的挣扎,我发现了自己的错误。

网址需要尾随/

因此它应该是${rootUrl}/tree/而不是${rootUrl}/tree

感谢Abhishek Lal(我的老板)在不到一分钟的时间内发现了这个错误。

1 个答案:

答案 0 :(得分:0)

基于反应原生

documentation 获取适用于IOS& Android的 所以我不认为fetch上的错误我认为还有另一个错误  您是否在 info.plist

中添加了网络权限