Axios Post方法,用于实现自定义标头和令牌值

时间:2018-08-06 18:09:15

标签: javascript node.js axios axios-mock-adapter

我正在尝试使用NodeJS中的Axios编写Post方法。

我要在post方法中将以下内容作为参数传递

url = http:/xyz/oauthToken
header 'authorization: Basic kdbvkjhdkhdskhjkjkv='\
header 'cache-control:no-cache'
header 'content-type: application/x-www-form-urlencoded'
data 'grant_type=password&username=user123&password=password123'

当我尝试使用以下代码但对于Axioz还是陌生的时,我不确定如何准确地使用主体响应的授予类型来实现标头。

var config = {
 headers: {'Authorization': "bearer " + token}
};

var bodyParameters = {
  data 'grant_type=password&username=user123&password=password123'   
}

Axios.post( 
 'http:/xyz/oauthToken',
 bodyParameters,
 config
).then((response) => {
   console.log(response)
}).catch((error) => {
  console.log(error)
});     

任何帮助/建议将不胜感激:-)

1 个答案:

答案 0 :(得分:2)

当前,axios并不方便使用表单编码的数据。它主要针对JSON进行了优化。不过,as documented here是可能的。

const querystring = require('querystring');

const body = querystring.stringify({ 
  grant_type: 'password',
  username: 'user123',
  password: 'password123'
});

axios.post('http:/xyz/oauthToken', body, { 
  headers: {
    authorization: `bearer ${token}`,
    'content-type': 'application/x-www-form-urlencoded'
  }
});