我对使用fetch或axios库的react-native ajax调用有一些问题。无法在失败的Ajax调用中获取http statusText。 statusText属性始终未定义。
这里是一个简单的示例:
axios.post(this._apiBasePath + url, data, {
headers: this._header,
timeout:5000,
responseType: respType
}).then(d => {
res(d.data);
}).catch(err => {
if(err.response){
console.log(err.response);
// there is a status 401 but no statusText in err Object
}
});
也许你们可以帮助我吗?
(在iOS和Android模拟器中测试)
(反应16.4.1 /本机反应0.55.4)
答案 0 :(得分:0)
您可以尝试使用以下代码,可以在android中调用http,但只能在IOS中调用https
constructor(props){
super(props);
this.state={
lists:[]
}
}
componentDidMount(){
return fetch(url, {method: "GET"})
.then((response) => response.json())
.then((responseData) => {
this.setState({ lists: responseData.result });
})
.done();
}
答案 1 :(得分:0)
@TKDEV-我也看到了这个问题-React Native中statusText
响应的undefined
是fetch
。我认为这是自2015年以来一直存在的问题(https://github.com/facebook/react-native/issues/4184)。
在React Native GitHub(https://github.com/facebook/react-native/issues)上搜索“ statusText”,似乎所有响应都以statusText
的形式返回为undefined
。
也遇到过,我认为您对此问题的解释是什么?如果不是,则ToKaDev的用户名非常相似(https://github.com/facebook/react-native/issues/4184#issuecomment-405554853)
似乎statusStatus属性没有从Java / ObjectiveC中的本机实现传递到JS实现。 (仅通过状态码)。我认为我们需要扩展此响应回调以传递statusText属性。