2016-07-02 31 views
3

oauthが設定されています。しかし、私がfetch()関数を使ってアクセストークンを取得したい場合、_bodyInit、_bodyBlob、およびヘッダーのようなものを持つオブジェクトを返します。だから私はJSONオブジェクトを取得できません。私はそれが何らかの方法で問題があるならAndroidにいる。fetch()でJSONオブジェクトがありません

コード:

componentDidMount() { 
 
Linking.getInitialURL().then(url => { 
 
     if(url) { 
 
     console.log(url); 
 
     const queries = url.substring(16) 
 
     const dataurl = qs.parse(queries); 
 
     if(dataurl.state === 'ungessable15156145640!') { 
 
      console.log(dataurl.code); 
 
      console.log(dataurl.state); 
 
      return code = dataurl.code; 
 
     } 
 
     } 
 
    }).then((code) => { 
 
     fetch(`https://dribbble.com/oauth/token`, { 
 
     method: 'POST', 
 
     headers: { 
 
      'Accept': 'application/json', 
 
      'Content-Type': 'application/json' 
 
     }, 
 
     body: JSON.stringify({ 
 
      'client_id': 'MY_ID', 
 
      'client_secret': 'MY_SECRET', 
 
      'code': code 
 
     }) 
 
     }) 
 
     .then((res) => { 
 
     var access_token = res; 
 
     console.log(access_token); 
 
     }); 
 
    }); 
 
    }

答えて

4

あなたはほとんどそれは右、あなたがが一歩不足しているです!

は、それは念の何かにキャッチを追加するとよいでしょうJSONオブジェクトを返しません、それはjson objectを得るために、Responseオブジェクトを返します、あなたはres.json()

fetch(`https://dribbble.com/oauth/token`, { 
     method: 'POST', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json' 
     }, 
     body: JSON.stringify({ 
      'client_id': 'MY_ID', 
      'client_secret': 'MY_SECRET', 
      'code': code 
     }) 
     }) 
     .then((res) => { 
     return res.json(); 
     }) 
     .then((json) => { 
     console.log(json); // The json object is here 
     }); 

を使用する必要がフェッチ間違っている。

.then((json) => { 
     console.log(json); // The json object is here 
}); 
.catch((err) => { 
    // Handle your error here. 
}) 
関連する問題