【问题标题】:Change request method in axios interceptoraxios拦截器中更改请求方法
【发布时间】:2019-10-04 12:33:44
【问题描述】:

我正在尝试使用拦截器将 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
      }
    )

我错过了什么吗?

【问题讨论】:

  • 您是否尝试将params 改为data
  • @CD.. 就是这样。我没有意识到paramsdata 是不同的,我认为POST 中的params 只会被添加到POST body 中。太好了,感谢您的帮助!

标签: javascript axios


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2020-12-28
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2018-10-31
    • 2023-03-19
    相关资源
    最近更新 更多