在axios拦截器中更改请求方法

时间:2019-05-17 07:50:41

标签: javascript axios

我正在尝试使用拦截器将axios GET请求更改为POST请求。该方法似乎已更改,但是我的参数仍附加在URL上,而不是在POST正文中发送。

    axios.get(payload.url, {
      params: payload.params || {}
    })

    axios.interceptors.request.use(
      function (config) {
        // check request method -> use post if many params
        if (MY_CONDITION) {
          if (config.method === 'get') {
            console.log('changed to post')
            config.method = 'post'
          }
        }
        return config
      }
    )

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

感谢CD ..的评论,我找到了解决方法。 Params始终附加在请求URL上,而我需要使用data,因为这就是POST body的结尾。发布以防他人需要:

  config.method = 'post'
  config.data = config.params
  config.params = {}