axios.post 导致错误请求 - grant_type:'client_credentials'
axios.post results in Bad request - grant_type:'client_credentials'
我的 axios POST 方法运行不正常。虽然调用语法看起来是正确的,但我想在我的具体案例中存在一些根深蒂固的问题。我正在尝试使用 grant_type=client_credentials 获取访问令牌,使用对 fiware IDM 服务器的 POST 请求。调用结果 400: bad request
.
curl 命令非常有用。当我使用简单的 http 请求时,似乎存在 CORS 冲突,因此我切换到使用 node.js 。我通过在单独的主体中发送数据来尝试 axios,它也不起作用,然后有人建议使用 axios.post 在调用中发送数据,它也以同样的问题结束。注:我试过grant_type=password
,不过,也遇到了同样的命运。
axios.post('https://account.lab.fiware.org/oauth2/token',{
'grant_type':'client_credentials'},{
headers:
{
'Content-Type':'application/x-www-form-urlencoded',
'Authorization': 'Basic xxxx'
}
}).then((response) => {
console.log(response);
}).catch((error) =>{
console.log(error.response.data.error);
})
我希望获得访问令牌,但是,我收到错误 400,如下所示:
{ message: 'grant_type missing in request body: {}',
code: 400,
title: 'Bad Request' }
问题是因为 https://account.lab.fiware.org/oauth2/token
的主机希望正文数据为 x-www-form-urlencoded
但 axios
正在为您将正文转换为 json
。这是 axios
.
的默认行为
更改您的 axios 代码以发送 x-www-form-urlencoded
正文数据,例如:
// use querystring node module
var querystring = require('querystring');
axios.post('https://account.lab.fiware.org/oauth2/token',{
// note the use of querystring
querystring.stringify({'grant_type':'client_credentials'}),{
headers: {
'Content-Type':'application/x-www-form-urlencoded',
'Authorization': 'Basic xxxx'
}
}).then(...
我的 axios POST 方法运行不正常。虽然调用语法看起来是正确的,但我想在我的具体案例中存在一些根深蒂固的问题。我正在尝试使用 grant_type=client_credentials 获取访问令牌,使用对 fiware IDM 服务器的 POST 请求。调用结果 400: bad request
.
curl 命令非常有用。当我使用简单的 http 请求时,似乎存在 CORS 冲突,因此我切换到使用 node.js 。我通过在单独的主体中发送数据来尝试 axios,它也不起作用,然后有人建议使用 axios.post 在调用中发送数据,它也以同样的问题结束。注:我试过grant_type=password
,不过,也遇到了同样的命运。
axios.post('https://account.lab.fiware.org/oauth2/token',{
'grant_type':'client_credentials'},{
headers:
{
'Content-Type':'application/x-www-form-urlencoded',
'Authorization': 'Basic xxxx'
}
}).then((response) => {
console.log(response);
}).catch((error) =>{
console.log(error.response.data.error);
})
我希望获得访问令牌,但是,我收到错误 400,如下所示:
{ message: 'grant_type missing in request body: {}',
code: 400,
title: 'Bad Request' }
问题是因为 https://account.lab.fiware.org/oauth2/token
的主机希望正文数据为 x-www-form-urlencoded
但 axios
正在为您将正文转换为 json
。这是 axios
.
更改您的 axios 代码以发送 x-www-form-urlencoded
正文数据,例如:
// use querystring node module
var querystring = require('querystring');
axios.post('https://account.lab.fiware.org/oauth2/token',{
// note the use of querystring
querystring.stringify({'grant_type':'client_credentials'}),{
headers: {
'Content-Type':'application/x-www-form-urlencoded',
'Authorization': 'Basic xxxx'
}
}).then(...