Axios url के काम में मिलता है लेकिन दूसरे पैरामीटर के साथ ऑब्जेक्ट के रूप में यह नहीं होता है


121

मैं दूसरे पैरामीटर के रूप में GET रिक्वेस्ट भेजने की कोशिश कर रहा हूं, लेकिन यह उर के रूप में काम नहीं करता है।

यह काम करता है, $ _GET ['नाम'] रिटर्न टेस्ट:

export function saveScore(naam, score) {
  return function (dispatch) { 
    axios.get('http://****.nl/****/gebruikerOpslaan.php?naam=test')
      .then((response) => {
        dispatch({type: "SAVE_SCORE_SUCCESS", payload: response.data})
      })
      .catch((err) => {
        dispatch({type: "SAVE_SCORE_FAILURE", payload: err})
      })
  }
};

लेकिन जब मैं यह कोशिश करता हूं, तो कुछ भी नहीं है $_GET:

export function saveScore(naam, score) {
  return function (dispatch) { 
    axios.get('http://****.nl/****/gebruikerOpslaan.php',
    {
        password: 'pass',
        naam: naam,
        score: score
    })
      .then((response) => {
        dispatch({type: "SAVE_SCORE_SUCCESS", payload: response.data})
      })
      .catch((err) => {
        dispatch({type: "SAVE_SCORE_FAILURE", payload: err})
      })
  }
};

मैं ऐसा क्यों नहीं कर सकता? डॉक्स में यह स्पष्ट रूप से कहा गया है कि यह संभव है। इसके साथ $_POSTभी काम नहीं करता है।

जवाबों:


298

axios.get दूसरे पैरामीटर के रूप में अनुरोध कॉन्फ़िगरेशन को स्वीकार करता है (क्वेरी स्ट्रिंग परम नहीं)।

आप paramsनिम्न प्रकार से क्वेरी स्ट्रिंग परम को सेट करने के लिए कॉन्फ़िगरेशन विकल्प का उपयोग कर सकते हैं :

axios.get('/api', {
  params: {
    foo: 'bar'
  }
});

11
मैं इसे सर्वर साइड पर कैसे निकालूं?
मुस्तफा मामून

1
@zero_cool आपको पैरामन्स तक पहुंचने की आवश्यकता नहीं है, यहाँ उदाहरण उदाहरण के लिए आप "फू" का उपयोग कर सकते हैं और यह "बार" पर वापस आ जाएगा
आशुतोष राज

सर्वर साइड पर एक्सट्रैक्ट करना महत्वपूर्ण बिंदु है, मुझे यकीन है कि आप सर्वर साइड पर अपनी विधि के लिए पैरामीटर के रूप में स्ट्रिंग फू का उपयोग कर सकते हैं, लेकिन मुझे यकीन नहीं है कि आपके सर्वर साइड विधि के अंदर ऑब्जेक्ट के रूप में एक ही बार में सभी मापदंडों को कैसे पकड़ा जाए। कोई सुराग? मैं इस url stackoverflow.com/questions/55602990/…
Kurkula

86

ग्राहक पर:

  axios.get('/api', {
      params: {
        foo: 'bar'
      }
    });

सर्वर पर:

function get(req, res, next) {

  let param = req.query.foo
   .....
}

1
@danikorean, क्या हम अनुरोध विधि उर्फ ​​का उपयोग किए बिना एक ही क्लाइंट कोड लिख सकते हैं, अर्थात axios.getकेवल उपयोग करने के बजायaxios({url:"url_goes_here",data:{params:{foo:'bar'}})
srbcheema1

1
इस सर्वर कोड ने मुझे घंटों बचाया, धन्यवाद! किसी को भी आश्चर्य हो रहा है, .get कॉल के लिए 'params' के साथ रहें, न कि 'बॉडी' जैसा कि आपने आसपास खोजते हुए देखा होगा। यदि आप चाहें तो आप इसे सर्वर की ओर से कुछ भी नाम दे सकते हैं, लेकिन क्लाइंट को प्राप्त करने के लिए पैरामेट्स रखें।
DORRITO

axios.get('/api', { params}) ! ==axios.get('/api', params)
xgqfrms
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.