我使用两个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 });
}
});
}
这是我从服务器获得的响应:
解决方案:
好吧,经过3天的挣扎,我发现了自己的错误。网址需要尾随/
因此它应该是${rootUrl}/tree/
而不是${rootUrl}/tree
答案 0 :(得分:0)
基于反应原生
documentation 获取适用于IOS& Android的 所以我不认为fetch上的错误我认为还有另一个错误 您是否在 info.plist
中添加了网络权限