在componentdidmount中使用302获取抛出错误

时间:2017-10-26 01:30:02

标签: javascript reactjs

当api调用重定向并返回响应时,我在componentDidMount方法中使用fetch方法时遇到问题。初始302响应尝试在获取并抛出JSON数据的第1行第1列的JSON.parse:意外结束数据之后在then方法中进行处理。关于如何解决这个问题的任何建议?

componentDidMount(){
            let config = {
                method: 'GET',
                mode: 'no-cors',
                redirect:'follow',
                cache: 'default',
                headers: new Headers({
                    'Content-Type': 'application/json'
                })
            };

         fetch("ACTUAL_URL",config)
         .then(response => response.text())
         .then( val => JSON.parse(val))
         .then(response => {
                    this.setState({val:response.json()})
            })
    }

API CALL响应 -302 - 200

1 个答案:

答案 0 :(得分:0)

在网络错误的情况下仅提取拒绝。对于其他必须使用的情况   ok方法

fetch("ACTUAL_URL",config)
         .then(function(data){
              if (!data.ok) {
               throw Error(data);
              }
         }).then(response => response.text())
         .then( val => JSON.parse(val))
         .then(response => {
                    this.setState({val:response.json()})
         }).catch(function(error){
           // handle the 302 error here
         })