gpt4 book ai didi

javascript - 在对 Github API 的获取请求中从 POST 读取结果时出现问题

转载 作者:行者123 更新时间:2023-12-03 02:04:34 24 4
gpt4 key购买 nike

我正在使用 fetch api 获取从 github api 返回的访问 token 。

当我检查网络选项卡时,我看到 token 已返回,但我无法在 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 Uncaught (in promise) SyntaxError: Unexpected end of input

GitHub docs指出响应采用以下格式:

By default, the response takes the following form:

access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer

我猜它没有返回有效的 json,而只是返回一个字符串,所以我不确定如何访问此响应。

响应如下所示:

enter image description here

但是,当我尝试注销响应时,我收到 SyntaxError: Unexpected end of input

最佳答案

如果您使用mode: 'no-cors,浏览器将限制访问body。浏览器具有跨域安全性。如果您想访问正文,则必须在不使用 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);
})

关于javascript - 在对 Github API 的获取请求中从 POST 读取结果时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49855691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com