React-Native Fetch / Axios没有statusText

时间:2018-06-27 08:07:18

标签: react-native fetch axios

我对使用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
            }
        });

也许你们可以帮助我吗?

json of the error object

(在iOS和Android模拟器中测试)

(反应16.4.1 /本机反应0.55.4)

2 个答案:

答案 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响应的undefinedfetch。我认为这是自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属性。