【问题标题】:axios remove / before get requestaxios 在获取请求之前删除/
【发布时间】:2020-07-28 05:13:28
【问题描述】:

我正在使用

export default axios.create({
  baseURL: `https://api.openweathermap.org/data/2.5/onecall?`,
  responseType: "json",
});

然后响应将其附加到请求中

const res = await weatherApi.get(
    `lat=${lat}&lon=${lon}&appid=${KEY}&units=${unit}`
  );

但最终结果是 https://api.openweathermap.org/data/2.5/onecall?/lat=53&lon=1.15&appid=keyremoved&units=metric

onecall? axios 插入/ 之后,有没有办法禁用它?这违反了我的要求。

【问题讨论】:

    标签: reactjs redux get axios


    【解决方案1】:

    https://github.com/axios/axios/issues/757#issuecomment-291016487

    您可以为此使用 axios 拦截器,但请注意这会修改您的所有请求,您可能需要更仔细地检查何时执行此操作!

    axios.interceptors.request.use((config) => {
      if (config.url[config.url.length - 1] === '/') {
        config.url = config.url.substr(0, str.length - 1);
      }
      return config;
    });
    

    【讨论】:

      【解决方案2】:

      您可以使用 get 中的 params 选项传递参数。

      const res = await weatherApi.get({
        params: {
           lat: lat,
           lon: lon,
           appid: KEY,
           units: unit
        }
      );
      

      axios get request 可以轻松处理参数。

      并从您的基本网址中删除 ?

      【讨论】:

        猜你喜欢
        • 2020-04-02
        • 2020-06-23
        • 1970-01-01
        • 2019-11-26
        • 2019-08-24
        • 2020-03-08
        • 2018-12-24
        • 2018-04-10
        • 2020-07-17
        相关资源
        最近更新 更多