axios发布请求失败,请求失败

时间:2018-09-21 11:05:28

标签: axios

我尝试用axios做一个简单的发布请求。

我的代码段:

const getOauthToken = async () => {
  try {

    const headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'X-ProxyPass' : '...',
    }


    const data = {
        ...
    }

    return await axios.post('/oauth2/token', data, {headers: headers});
  } catch (error) {
    throw new Error(`Unable to get an authentication token. Reason ${error}`);
  }

};

此呼叫在http 400上失败。当我将标头设置为默认值时,

axios.defaults.headers.post['X-ProxyPass'] = '...';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

然后它起作用。

1 个答案:

答案 0 :(得分:0)

在axios文档中找到了解决方案。 如果使用“ application / x-www-form-urlencoded”,则必须使用querystring以所需的格式进行序列化。

return await axios.post('/oauth2/token', querystring.stringify(data), {headers: headers});

但是为什么它起作用,当我将标题设置为默认标题时,我仍然很神秘。