У меня была точно такая же проблема, пока я наконец не понял, что Axios нужно переформатировать объект данных в виде строки запроса.
Так что сделайте себе такую функцию:
function getQueryString(data = {}) {
return Object.entries(data)
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
.join('&');
}
Довольно просто, просто URI, кодирующий все части вашего объекта и соединяющий их с помощью &
.
Затем измените ваш код следующим образом:
axios.post(`${baseURI}/protocol/openid-connect/token`,data, {
headers : {
"Authorization" : "Basic " + token,
"Content-Type" : "application/x-www-form-urlencoded"
},
withCredentials: true,
transformRequest: getQueryString
})
.then(/*...*/);
Вы можете прочитать о различных параметрах, включая transformRequest, для конфигурации запроса здесь: https://github.com/axios/axios#request-config
(Я все еще раздражен тем, что это было необходимо, и не только Axios, но и хорошо.)