在 ios 中获取不发送授权标头

问题描述 投票:0回答:3

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

登录工作正常,但第二次获取在 ios 中抛出错误。在安卓上运行良好

授权标头未从 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

解决方案:

URL 需要尾随 /

所以应该是

${rootUrl}/tree/
而不是
${rootUrl}/tree

react-native react-native-ios
3个回答
0
投票

iOS 保留了您无法使用的 HTTP 标头,授权就是其中之一。

https://developer.apple.com/documentation/foundation/nsurlrequest

请参阅此 stackoverflow 评论: React Native iOS 不添加授权标头,适用于 Android


0
投票

URL 需要尾随 /

所以,它应该是 ${rootUrl}/tree/ 而不是 ${rootUrl}/tree


-1
投票

基于 React Native

文档 fetch 适用于 IOS 和 Android 所以我不认为获取时出现错误我认为还有另一个错误 您是否在 info.plist

中添加了网络权限
© www.soinside.com 2019 - 2024. All rights reserved.