如何使用axios发出编码的POST请求?

时间:2019-05-24 02:18:24

标签: javascript reactjs post httprequest axios

我正在尝试根据以下API请求示例在我的reactjs应用中创建POST请求:

示例API请求

curl -X "POST" -H "Authorization: Basic ZjM4ZjAw...WY0MzE=" -d grant_type=client_credentials https://accounts.spotify.com/api/token

我应该使用base64编码标题中“基本”之后的文本。

如何使用axios在javascript中创建此请求?这是我到目前为止的内容:

async componentDidMount() {
        const encodedString = new Buffer('1ff56abe7792f426ea41a771d707d6690:1b2cca2dedd3949b0a6c5e1582446c9c5').toString('base64');

        const [initSpotResponse] = await Promise.all([
            axios.post('https://accounts.spotify.com/api/token', { headers: { 'Authorization': `Basic ${encodedString}` } })
        ]);
    }

如何包含“ grant_type = client_credentials”部分?

1 个答案:

答案 0 :(得分:1)

根据axios的README,这是POST请求的Request方法别名

  

axios.post(URL [,data [,config]])

axios.post('https://accounts.spotify.com/api/token', 
    { data: { grant_type: ‘client_credentials’} }, 
    { headers: { 'Authorization': `Basic ${encodedString}` } }
)

您也可以

const options = {
   url: ‘https://accounts.spotify.com/api/token', 
   method: 'POST',
   headers: { 'Authorization': `Basic ${encodedString}` },
   data: { grant_type: ‘client_credentials’} 
};

axios(options);