Ad Results In Bad Request - Grant_type:'client_credentials'

- 1 answer

My axios POST method is not working fine. While the call syntax appears to be correct, I guess there is somewhat deep-rooted issue in my specific case. I am trying to get access token using grant_type=client_credentials, using a POST request to fiware IDM server. The call results in 400: bad request.

curl command works just great. It seems there is a CORS violation when I use simple http request, hence I switched to using node. I tried axios by sending data in separate body, it didn't work either, then someone suggested to send the data in the call using, it also ended in same problem. Note: I have tried grant_type=password, however, that also met same fate.'',{ 
'Authorization': 'Basic xxxx'   

}).then((response) => {
    }).catch((error) =>{

I expect to get the access token, however, I am getting error 400 as below:

{ message: 'grant_type missing in request body: {}',
code: 400,
title: 'Bad Request' }


The issue is because the host at expects body data to be x-www-form-urlencoded but axios is converting the body to json for you. That is the default behaviour with axios.

Change your axios code to send x-www-form-urlencoded body data like:

// use querystring node module
var querystring = require('querystring');'',{
  // note the use of querystring
  headers: {
    'Authorization': 'Basic xxxx'