Come impostare l’intestazione e le opzioni in axios?

Io uso axios per eseguire un HTTP post come questo:

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

È corretto? O devo fare:

axios.post(url, params: params, headers: headers)

  • Mi chiedo perché non si accetta una risposta sbagliata!
InformationsquelleAutor user2950593 | 2017-08-08



6 Replies
  1. 153

    Ci sono diversi modi per fare questo:

    • Per una singola richiesta:

      let config = {
        headers: {
          header1: value,
        }
      }
      
      let data = {
        'HTTP_CONTENT_LANGUAGE': self.language
      }
      
      axios.post(URL, data, config).then(...)
      
    • Per impostazione predefinita configurazione globale:

      axios.defaults.headers.post['header1'] = 'value' //for POST requests
      axios.defaults.headers.common['header1'] = 'value' //for all requests
      
    • Per impostazione predefinita su axios esempio:

      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;
      });
      
  2. 68

    Puoi inviare una richiesta get con le Intestazioni per l’autenticazione con jwt per esempio):

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

    Si può anche inviare una richiesta post.

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

    Il mio modo di fare,è quello di impostare una richiesta come questa:

     axios({
      method: 'post', //you can set what request you want to be
      url: 'https://example.com/request',
      data: {id: varID},
      headers: {
        Authorization: 'Bearer ' + varToken
      }
    })
    
    • Seconda richiesta post non fornisce specifiche intestazioni, si può modificare per esempio completo ?
    • utilizzando data in intercettori.richiesta => questo sovrascriverà il actuall parte del corpo dalla chiamata specifica che dove stiamo usando. Così non utilizzato in questo caso.
  3. 16

    È possibile passare un oggetto config di axios come:

    axios({
      method: 'post',
      url: '....',
      params: {'HTTP_CONTENT_LANGUAGE': self.language},
      headers: {'header1': value}
    })
    
  4. 12

    Questo è un semplice esempio di una configurazione con intestazioni e responseType:

    var config = {
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
      responseType: 'blob'
    };
    
    axios.post('http://YOUR_URL', this.data, config)
      .then((response) => {
      console.log(response.data);
    });
    

    Tipo di contenuto può essere ‘, ‘application/x-www-form-urlencoded’ o ‘, ‘application/json’
    e può funzionare anche ‘, ‘application/json;charset=utf-8’

    responseType può essere ‘arraybuffer’, ‘blob’, ‘documento’, ‘json’, ‘testo’, ‘flusso’

    In questo esempio, questo.i dati che si desidera inviare. Può essere un valore o un Array. (Se si desidera inviare un oggetto probabilmente dovrete registrarlo)

  5. 5

    È possibile inizializzare una intestazione di default axios.defaults.headers

     axios.defaults.headers = {
            'Content-Type': 'application/json',
            Authorization: 'myspecialpassword'
        }
    
       axios.post('https://myapi.com', { data: "hello world" })
            .then(response => {
                console.log('Response', response.data)
            })
            .catch(e => {
                console.log('Error: ', e.response.data)
            })
    
  6. 2

    se si vuole fare una richiesta get con parametri e le intestazioni.

    JS:

    var params = {
      paramName1: paramValue1,
      paramName2: paramValue2
    }
    
    var headers = {
      headerName1: headerValue1,
      headerName2: headerValue2
    }
    
     Axios.get(url, {params, headers} ).then(res =>{
      console.log(res.data.representation);
    });

Lascia un commento