我正在尝试从MYOB获取访问令牌。我进行的POST调用返回一个"400 Bad Request error“我正在使用"axios”进行POST调用,我已经获得了在POST调用中发送的数据中使用的访问码
以下是我的代码
const config= { headers:{'Content-Type':"application/x-www-form-urlencoded"}}
const data={
client_id:"xxxxxxxxxxxxxxxxxxxxxxx",
client_secret:"xxxxxxxxxxxxxxxxxxxxx",
scope:"CompanyFile",
code: code,
redirect_uri:"http%3A%2F%2Flocalhost%3A30002Fcallback",
grant_type : "authorization_code"
}
axios.post("https://secure.myob.com/oauth2/v1/authorize", data, config)
.then((res) =>{
console.log ("response ...............", res
}
)
.catch((error) => {
console.error("Error here is ........",error)
}
)发布于 2019-11-30 07:38:53
默认情况下,Axios会尝试将您的data字段发布为JSON,这是不正确的。
相反,您希望对它们进行url编码,并在HTTP正文中发布url编码的字符串。请参阅“示例调用”in the docs。
这里有一个很好的例子来说明如何使用axios here进行url编码。
我还注意到您的redirect_uri字段已经是url编码的,所以尝试第二次简单地对它进行编码意味着您最终会得到像http%253A%252F%252Flocalhost这样不正确的东西。根据示例调用仔细检查URL编码,以确保不会意外地对某些字段进行两次编码。在内存中,访问代码已经进行了适当的编码,因此您可能需要在重新编码之前对其进行解码,以使其正常工作。
https://stackoverflow.com/questions/58375452
复制相似问题