如何使用Axios在application / x-www-form-urlencoded中编码JSON数据?

问题描述

我必须向API端点发出发布请求,并且要求请求的主体以application / x-www-form-urlencoded编码。

这是我目前正在做的事情:

  // Request data
  const data = {
    grant_type: "client_credentials",};

  // Request configuration
  const config = {
    method: "post",url,data,headers: {
      "Content-Type": "application/x-www-form-urlencoded",Authorization:
        "Basic " +
        Buffer.from(clientId + ":" + clientSecret).toString("base64"),},};

  return axios(config).then(.....

如您所见,我的数据为JSON格式,那么如何传递以application / x-www-form-urlencoded编码的数据?

有什么想法吗?谢谢。

解决方法

此:

JSON.stringify(data);

将返回

'data = {"grant_type": "client_credentials"}'
,

application/x-www-form-urlencoded意味着您可以:

发送FormData正文:axios post request to send form data

或通过url查询字符串发送数据:How to post query parameters with Axios?

您也可以将两者结合在一起。

当JSON编码不符合要求时,通常使用此编码。发送文件。您可以使用json字符串发送文件,但这将是base64编码的文件作为字符串,这会增加大小。