Axios में हेडर और विकल्प कैसे सेट करें?


159

मैं इस तरह से एक HTTP पोस्ट करने के लिए Axios का उपयोग करता हूं:

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

क्या ये सही है? या मुझे करना चाहिए:

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

3
मैं सोच रहा हूँ कि आपने गलत उत्तर क्यों स्वीकार किया!
सिरवन अफफी

@SirwanAfifi इस प्रश्न का कोई स्वीकृत उत्तर नहीं है
Tessaracter

2
@Tessaracter 13 मई 2019 को, -78 के स्कोर के साथ एक स्वीकृत जवाब था। तब से इसका ख्याल रखा गया है।
jkmartindale

@jkmartindale दिलचस्प
Tessaracter

जवाबों:


264

इसे करने बहुत सारे तरीके हैं:

  • एकल अनुरोध के लिए:

    let config = {
      headers: {
        header1: value,
      }
    }
    
    let data = {
      'HTTP_CONTENT_LANGUAGE': self.language
    }
    
    axios.post(URL, data, config).then(...)
  • डिफ़ॉल्ट वैश्विक कॉन्फ़िगरेशन सेट करने के लिए:

    axios.defaults.headers.post['header1'] = 'value' // for POST requests
    axios.defaults.headers.common['header1'] = 'value' // for all requests
  • अक्षीय उदाहरण पर डिफ़ॉल्ट के रूप में स्थापित करने के लिए:

    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;
    });

1
क्या मैं आपसे axiosसंबंधित प्रश्न पर एक नज़र डालने के लिए कह सकता हूं : stackoverflow.com/questions/59470085/… ?
इस्तियाक अहमद

141

आप हेडर के साथ अनुरोध प्राप्त कर सकते हैं (उदाहरण के लिए jwt के साथ प्रमाणीकरण के लिए):

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

इसके अलावा, आप एक पोस्ट अनुरोध भेज सकते हैं।

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

इसे करने का मेरा तरीका है, इस तरह से अनुरोध करना है:

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

1
आप दूसरा पोस्ट अनुरोध विशिष्ट हेडर प्रदान नहीं करते हैं, क्या आप इसे पूर्ण उदाहरण के लिए संपादित कर सकते हैं?
धारीदार

datainterceptors.request => में उपयोग करने से यह आपके एक्टुअल बॉडी पार्ट को उस विशिष्ट कॉल से ओवरराइड करेगा जहां हम उपयोग कर रहे हैं। इसलिए ऐसे मामले में इस्तेमाल नहीं किया गया।
अनुपम मौर्य

क्या आपको 'प्राधिकरण:' बियरर '+ टोकन' के इस मानक का पालन करना है या आप कुछ ऐसा कर सकते हैं जैसे कि उदाहरण के लिए: टोकन? मैं Pers0 एपी का उपयोग नहीं कर रहा हूं, लेकिन नोड में अपना काम कर रहा हूं, क्षमा करें यदि बेवकूफ सवाल सामान्य रूप से jwt और सुरक्षा सामान पर नया है
विलीम कार्डसो

24

आप अक्षतंतु के लिए एक विन्यास वस्तु पास कर सकते हैं जैसे:

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

16

यह हेडर और 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);
});

सामग्री-प्रकार 'आवेदन / x-www-form-urlencoded' या 'अनुप्रयोग / json' हो सकता है और यह 'आवेदन / json' भी कार्य कर सकता है; charset = utf-8 '

responseType 'arraybuffer', 'blob', 'document', 'json', 'text', 't' हो सकता है

इस उदाहरण में, यह.data वह डेटा है जिसे आप भेजना चाहते हैं। यह एक मान या एक ऐरे हो सकता है। (यदि आप एक वस्तु भेजना चाहते हैं तो आपको शायद इसे क्रमबद्ध करना होगा)


क्या आप कॉन्फिगर कीवर्ड के बिना हेडर सेट करने के बीच अंतर बता सकते हैं?
बबल-कॉर्ड

1
एक विन्यास चर का उपयोग एक अच्छे और अधिक पठनीय कोड उत्पन्न करता है; और कुछ नहीं @ बबल-कॉर्ड
gtamborero


10

आप एक डिफ़ॉल्ट हेडर को इनिशियलाइज़ कर सकते हैं 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)
        })

9

यदि आप परम और हेडर के साथ एक अनुरोध प्राप्त करना चाहते हैं।

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

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

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


2

इस कोड को आज़माएं

उदाहरण के कोड में उपयोग axios आराम एपीआई मिलता है।

मुहिम में

  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);
  });
}

आशा है मदद।


2

मुझे अनुरोध के बाद इस मुद्दे का सामना करना पड़ा । मैं इस तरह axios हैडर में बदल गया हूँ। यह बढ़िया काम करता है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.