【问题标题】:how to attach a header in axios.all()如何在 axios.all() 中附加标题
【发布时间】:2020-08-15 19:53:43
【问题描述】:

有没有办法在 axios.all 方法中附加标头,或者我们必须将标头单独附加到每个请求。

axios.all([
    axios.delete('http://localhost:5000/requests/'+{id}),
    axios.post('http://localhost:5000/records/'+{id, response}),
],{
    headers: {Authorization: localStorage.getItem('auth-token')}
}).then(res => console.log(res.data))
.catch(err => console.log(err));

【问题讨论】:

    标签: javascript axios http-headers


    【解决方案1】:

    创建一个axios 实例并为所有请求使用相同的实例(推荐)

    const axiosInstance = axios.create({
      headers: {'X-Custom-Header': 'foobar'}
    });
    

    示例:

    const axiosInstance = axios.create({
      headers: {
         Authorization: localStorage.getItem('auth-token')
      }
    });
    
    axios.all([
      axiosInstance.delete("http://localhost:5000/requests/" + {id}),
      axiosInstance.post("http://localhost:5000/records/" + {id, response})
      ]).then((res) => {
        console.log("Response: ", res);
      }).catch((error) => {
        console.log("Error: ", error); 
      })

    【讨论】:

      【解决方案2】:

      您可以为给定的所有请求设置默认标头

      axios.defaults.headers.common['Authorization'] = token;
      

      设置后,所有后续的网络调用都会默认携带Authorization头。此解决方法将帮助您提供应用程序全局标头,例如 Authorization 标头。您可以创建单独的 Axios 实例为

      const axiosInstance axios.create({
        headers: {Authorization: token}
      });
      

      您可以选择其中一种解决方法。

      【讨论】:

      • 这将在任何地方的 Axios 中工作,您只需要从正确的位置进行配置。 :)
      • 第二季度。你能告诉我反应中的任何配置文件我可以在哪里设置这个属性(axios.defaults.headers.common ['Authorization'] = token),这样我就不必在每个文件中导入它或手动输入它谢谢.......
      • 您是否有用于所有 API 调用的独立 API 文件?如果是的话,你可以在那里导入axios并在那里配置,这里是一篇不错的文章,以designrevision.com/react-axios/…开始
      猜你喜欢
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 2014-07-01
      • 2019-12-21
      • 2019-02-25
      • 2018-03-16
      相关资源
      最近更新 更多