[英]issue with reading result from POST in fetch request to Github API
我正在使用fetch api獲取從github api返回的訪問令牌。
當我檢查“網絡”選項卡時,我看到令牌已返回,但無法在fetch
請求中訪問它。
我的代碼如下所示:
fetch(`https://github.com/login/oauth/access_token?client_id=***&client_secret=***&code=${code}&redirect_uri=http://localhost:3000/&state=react`, {
method: 'POST',
mode: 'no-cors',
headers: new Headers({
'Content-Type': 'application/json'
})
}).then(function(res) {
console.log(res); // I have already tried return res.json() here
})
如果我返回res.json()
,控制台將顯示以下錯誤:
index.js:30未捕獲(承諾)語法錯誤:輸入意外結束
GitHub文檔指出響應采用以下格式:
默認情況下,響應采用以下形式:
access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer
我猜它不是返回有效的json而是一個字符串,所以我不確定如何訪問此響應。
響應如下所示:
但是,當我嘗試注銷響應時,出現SyntaxError: Unexpected end of input
如果您使用mode: 'no-cors
,瀏覽器將限制訪問主體。 瀏覽器具有跨域安全性。 如果要訪問正文,則必須在沒有mode: 'no-cors
情況mode: 'no-cors
調用mode: 'no-cors
屬性。
https://developer.mozilla.org/en-US/docs/Web/API/Request/mode
fetch(`https://jsonplaceholder.typicode.com/posts/1`, {
method: 'GET',
headers: new Headers({
'Content-Type': 'application/json'
})
})
.then(res => res.json())
.then(function(res) {
console.log(res);
})
fetch(`https://jsonplaceholder.typicode.com/posts/1`, {
method: 'GET',
mode: 'no-cors',
headers: new Headers({
'Content-Type': 'application/json'
})
})
.then(res => res.json())
.then(function(res) {
console.log(res);
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.