web-dev-qa-db-ja.com

axiosでグローバルヘッダーを設定する方法

こんにちは、リクエストインターセプターでデフォルトのaxiosヘッダーを設定していますが、これらのヘッダーは別の関数ではアクセスできません... axios axios documentation -axios-defaultsはグローバルです...以下は私のサンプルコードが助けを必要としている

axios.interceptors.request.use(function (config) {
  axios.defaults.headers.accesstoken= "some_access_token"
  axios.defaults.headers.client = "some_client"
  axios.defaults.headers.uid = "some_uid"
  return config;
},function (error) {
  return Promise.reject(error);
});

ページの読み込み時にcomponentDidmountは実行されますが、axiosのデフォルトヘッダーはこの関数では未定義です

componentDidMount: function() {
  console.log(axios.defaults.headers) #its giving me undefined
  axios.get("http://some_url_for_get_request.json", {
    headers: {
      accesstoken: axios.defaults.headers.accesstoken,
       uid: axios.defaults.headers.uid,
       client: axios.defaults.headers.client
    }
  })
}
13
code.king

次のように、すべてのXHR呼び出しに対してデフォルトAxiosのカスタムヘッダーを設定できます。

axios.defaults.headers.common = {
  "X-Requested-With": "XMLHttpRequest",
  "X-CSRFToken": "example-of-custom-header"
};

次のように構成を追加することもできます。

  window.axios.defaults.headers.post['xsrfCookieName'] = 'CSRFToken';
  window.axios.defaults.headers.post['xsrfHeaderName'] = 'X-CSRFToken';
  window.axios.defaults.headers.post['responseType'] = 'json';
  window.axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

また、インスタンスに渡される構成を作成できます。

18
JREAM