使用Axios GET POST的Twitch的API出现问题



我遇到代码问题。

axios({
method: 'post',
url: 'https://id.twitch.tv/oauth2/token',
body: {
client_id: 'a',
client_secret: 'Bearer b',
grant_type: 'client_credentials',}
}).then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
})

结果是:

data: { status: 400, message: 'missing client id' }

但如果我把它们放在url:中,这种方式效果很好

url: 'https://id.twitch.tv/oauth2/token?client_id=a&client_secret=b&grant_type=client_credentials',

我的问题是什么?你能给我举一个axios.get的例子吗?带有:

url: 'https://api.twitch.tv/helix/games/top'
headers: {
client_id: 'a',
Authorization: 'Bearer b',
}

对于axios,您需要作为data而不是body发送

然后构造/发送FormData

例如

axios({
method: "post",
url: "myurl",
data: bodyFormData,
headers: { "Content-Type": "multipart/form-data" },
})
.then(function (response) {
//handle success
console.log(response);
})
.catch(function (response) {
//handle error
console.log(response);
});

另请参阅:axios发布发送表单数据的请求以及:https://github.com/axios/axios/issues/318

使用body将得到混合结果,因为库(axios(不知道如何对发送的数据进行编码

就我个人而言,我使用got而不是axios,所以我发送

got({
url: "https://id.twitch.tv/oauth2/token",
method: "POST",
headers: {
"Accept": "application/json"
},
form: {
client_id: config.client_id,
client_secret: config.client_secret,
grant_type: "client_credentials"
},
responseType: "json"
})
.then(resp => {
//SNIP

显然API通过URL接收参数,因此将它们作为URL传递也是很有趣的。例如:axios({方法:"post",url:'https://id.twitch.tv/oauth2/token?client_id=${variable.a}&client_secret=${variable.b}…

相关内容

  • 没有找到相关文章