Bagaimana cara mengatur header dan opsi dalam aksioma?

160

Saya menggunakan Axios untuk melakukan posting HTTP seperti ini:

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

Apakah ini benar? Atau yang harus saya lakukan:

axios.post(url, params: params, headers: headers)
pengguna2950593
sumber
3
Saya bertanya-tanya mengapa Anda menerima jawaban yang salah!
Sirwan Afifi
@SirwanAfifi Tidak ada jawaban yang diterima untuk pertanyaan ini
Tessaracter
2
@Tessaracter Pada 13 Mei 2019, ada jawaban yang diterima dengan skor -78. Sudah diurus sejak saat itu.
jkmartindale
@jkmartindale Interesting
Tessaracter

Jawaban:

265

Ada beberapa cara untuk melakukan ini:

  • Untuk satu permintaan:

    let config = {
      headers: {
        header1: value,
      }
    }
    
    let data = {
      'HTTP_CONTENT_LANGUAGE': self.language
    }
    
    axios.post(URL, data, config).then(...)
    
  • Untuk mengatur konfigurasi global default:

    axios.defaults.headers.post['header1'] = 'value' // for POST requests
    axios.defaults.headers.common['header1'] = 'value' // for all requests
    
  • Untuk pengaturan sebagai default pada instance aksioma:

    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
sumber
1
bolehkah saya meminta Anda untuk melihat axiospertanyaan terkait di sini: stackoverflow.com/questions/59470085/… ?
Istiaque Ahmed
141

Anda dapat mengirim permintaan get dengan Header (untuk otentikasi dengan jwt misalnya):

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

Anda juga dapat mengirim permintaan posting.

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

Cara saya melakukannya, adalah dengan menetapkan permintaan seperti ini:

 axios({
  method: 'post', //you can set what request you want to be
  url: 'https://example.com/request',
  data: {id: varID},
  headers: {
    Authorization: 'Bearer ' + varToken
  }
})
roli roli
sumber
1
Permintaan posting kedua Anda tidak memberikan tajuk khusus, dapatkah Anda mengeditnya sebagai contoh lengkap?
Bergaris
dengan menggunakan datadi interceptors.request => itu akan menimpa bagian tubuh Anda yang sebenarnya dari panggilan tertentu yang kami gunakan. Jadi tidak digunakan dalam kasus seperti itu.
Anupam Maurya
Apakah Anda harus mengikuti standar 'Otorisasi:' Pembawa '+ token' atau dapatkah Anda melakukan sesuatu seperti Auth: token misalnya? Saya tidak menggunakan api auth0 tetapi melakukan sendiri di simpul, maaf jika pertanyaan bodoh baru untuk jwt dan hal-hal keamanan secara umum
Wiliam Cardoso
24

Anda bisa meneruskan objek konfigurasi ke aksioma seperti:

axios({
  method: 'post',
  url: '....',
  params: {'HTTP_CONTENT_LANGUAGE': self.language},
  headers: {'header1': value}
})
sjc42002
sumber
16

Ini adalah contoh sederhana konfigurasi dengan header dan 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);
});

Content-Type dapat berupa 'application / x-www-form-urlencoded' atau 'application / json' dan dapat berfungsi juga 'application / json; charset = utf-8'

Jenis tanggapan dapat berupa 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'

Dalam contoh ini, this.data adalah data yang ingin Anda kirim. Itu bisa berupa nilai atau array. (Jika Anda ingin mengirim objek, Anda mungkin harus membuat cerita bersambung)

gtamborero
sumber
Bisakah Anda menjelaskan perbedaan antara mengatur tajuk dengan kami tanpa kata kunci konfigurasi?
kabel gelembung
1
Menggunakan variabel config menghasilkan kode yang lebih bagus dan lebih mudah dibaca; tidak ada yang lain @ bubble-cord
gtamborero
14

Inilah cara yang Benar: -

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

Prateek Arora
sumber
10

Anda dapat menginisialisasi tajuk 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)
        })
Morris S
sumber
9

jika Anda ingin melakukan permintaan dapatkan dengan params dan header.

var params = {
  paramName1: paramValue1,
  paramName2: paramValue2
}

var headers = {
  headerName1: headerValue1,
  headerName2: headerValue2
}

 Axios.get(url, {params, headers} ).then(res =>{
  console.log(res.data.representation);
});

Rishith Poloju
sumber
2

coba kode ini

dalam contoh kode gunakan axios get rest API.

di pasang

  mounted(){
    var config = {
    headers: { 
      'x-rapidapi-host': 'covid-19-coronavirus-statistics.p.rapidapi.com',
      'x-rapidapi-key': '5156f83861mshd5c5731412d4c5fp18132ejsn8ae65e661a54' 
      }
   };
   axios.get('https://covid-19-coronavirus-statistics.p.rapidapi.com/v1/stats? 
    country=Thailand',  config)
    .then((response) => {
    console.log(response.data);
  });
}

Harapan adalah bantuan.

Superup
sumber
2

Saya telah menghadapi masalah ini dalam permintaan pos . Saya telah berubah seperti ini di header aksioma. Ini bekerja dengan baik.

axios.post('http://localhost/M-Experience/resources/GETrends.php',
      {
        firstName: this.name
      },
      {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
      });
Najathi
sumber
1

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

Sethy Proem
sumber