没有 JSON object 与 fetch()
No JSON object with fetch()
我设置了 oauth。但是,当我想使用 fetch() 函数获取访问令牌时,它只是 returns 一个 object,其中包含 _bodyInit、_bodyBlob 和 headers。所以我无法得到 JSON object。如果这在任何方面都很重要,我就在 Android 上。
代码:
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);
});
});
}
您几乎做对了,但是您还差了一步!
fetch 不是 return 一个 json 对象,它 return 是一个 Response 对象,为了得到 json object,你必须使用 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
});
最好添加一个 catch 以防出现问题。
.then((json) => {
console.log(json); // The json object is here
});
.catch((err) => {
// Handle your error here.
})
我设置了 oauth。但是,当我想使用 fetch() 函数获取访问令牌时,它只是 returns 一个 object,其中包含 _bodyInit、_bodyBlob 和 headers。所以我无法得到 JSON object。如果这在任何方面都很重要,我就在 Android 上。
代码:
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);
});
});
}
您几乎做对了,但是您还差了一步!
fetch 不是 return 一个 json 对象,它 return 是一个 Response 对象,为了得到 json object,你必须使用 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
});
最好添加一个 catch 以防出现问题。
.then((json) => {
console.log(json); // The json object is here
});
.catch((err) => {
// Handle your error here.
})