¿Cómo configurar el encabezado y las opciones en axios?

Resuelto user2950593 asked hace 7 años • 0 respuestas

Utilizo Axios para realizar una publicación HTTP como esta:

import axios from 'axios'
params = {'HTTP_CONTENT_LANGUAGE': self.language}
headers = {'header1': value}
axios.post(url, params, headers)

¿Es esto correcto? O debería hacer:

axios.post(url, params: params, headers: headers)
user2950593 avatar Aug 09 '17 05:08 user2950593
Aceptado

Hay varias formas de hacer esto:

  • Para una sola solicitud:

    let config = {
      headers: {
        header1: value,
      }
    }
    
    let data = {
      'HTTP_CONTENT_LANGUAGE': self.language
    }
    
    axios.post(URL, data, config).then(...)
    
  • Para configurar la configuración global predeterminada:

    axios.defaults.headers.post['header1'] = 'value' // for POST requests
    axios.defaults.headers.common['header1'] = 'value' // for all requests
    
  • Para configurar como predeterminado en la instancia de axios:

    let instance = axios.create({
      headers: {
        post: {        // can be common or any other method
          header1: 'value1'
        }
      }
    })
    
    //- or after instance has been created
    instance.defaults.headers.post['header1'] = 'value'
    
    //- or before a request is made
    // using Interceptors
    instance.interceptors.request.use(config => {
      config.headers.post['header1'] = 'value';
      return config;
    });
    
riyaz-ali avatar Aug 09 '2017 04:08 riyaz-ali

Puede enviar una solicitud de obtención con encabezados (para autenticación con jwt, por ejemplo):

axios.get('https://example.com/getSomething', {
 headers: {
   Authorization: 'Bearer ' + token //the token is a variable which holds the token
 }
})

También puedes enviar una solicitud de publicación.

axios.post('https://example.com/postSomething', {
 email: varEmail, //varEmail is a variable which holds the email
 password: varPassword
},
{
  headers: {
    Authorization: 'Bearer ' + varToken
  }
})

Mi forma de hacerlo es establecer una solicitud como esta:

 axios({
  method: 'post', //you can set what request you want to be
  url: 'https://example.com/request',
  data: {id: varID},
  headers: {
    Authorization: 'Bearer ' + varToken
  }
})
Roland avatar Feb 12 '2018 19:02 Roland

axios.post('url', {"body":data}, {
    headers: {
    'Content-Type': 'application/json'
    }
  }
)
Expandir fragmento

Sethy Proem avatar Jul 06 '2020 07:07 Sethy Proem

Puedes pasar un objeto de configuración a axios como:

axios({
  method: 'post',
  url: '....',
  params: {'HTTP_CONTENT_LANGUAGE': self.language},
  headers: {'header1': value}
})
sjc42002 avatar Aug 09 '2017 02:08 sjc42002