অক্ষগুলি ইউআরএল কাজ করে তবে দ্বিতীয় প্যারামিটারের সাথে অবজেক্ট হিসাবে এটি হয় না


121

আমি দ্বিতীয় প্যারামিটার হিসাবে জিইটি অনুরোধ প্রেরণের চেষ্টা করছি তবে এটি ইউআরএল হিসাবে কাজ করার সময় কার্যকর হয় না।

এটি কাজ করে, $ _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})
      })
  }
};

কেন আমি এটা করতে পারি না? দস্তাবেজে এটি পরিষ্কারভাবে বলেছে এটি সম্ভব possible সঙ্গে $_POSTএটা হয় কাজ করছে না।

উত্তর:


297

axios.get দ্বিতীয় প্যারামিটার হিসাবে একটি অনুরোধ কনফিগারেশন গ্রহণ করে (স্ট্রিং প্যারামের কোয়েরি নয়)।

আপনি paramsকোয়েরি স্ট্রিং প্যারামগুলি নীচে সেট করতে কনফিগারেশন বিকল্পটি ব্যবহার করতে পারেন :

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

11
আমি কীভাবে এটি সার্ভারের পাশ থেকে বের করব?
মোস্তফা মামুন

1
@ জেরো_কুল আপনার প্যারামগুলি অ্যাক্সেস করার দরকার নেই, উদাহরণস্বরূপ আপনি "ফু" অ্যাক্সেস করতে পারবেন এবং এটি "বার" ফিরে আসবে
আশুতোষ রাজ

সার্ভার সাইডে এক্সট্রাক্ট করা এখানে গুরুত্বপূর্ণ বিষয়, আমি নিশ্চিত যে আপনি সার্ভার সাইডে আপনার পদ্ধতিটির জন্য প্যারামিটার হিসাবে স্ট্রিং ফু ব্যবহার করতে পারেন তবে আমি নিশ্চিত না যে কীভাবে আপনার সার্ভারের পাশের পদ্ধতির অভ্যন্তরে সমস্ত পরামিতি একবারে গ্রহন করতে হবে। কোন সুত্র? আমি এই URL থেকে এই সাহায্য পেতে চেষ্টা করছি stackoverflow.com/questions/55602990/...
Kurkula

86

ক্লায়েন্টে:

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

সার্ভারে:

function get(req, res, next) {

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

1
@ উদ্যানিকোরান, আমরা কি অনুরোধের পদ্ধতির নাম ব্যবহার না করে একই ক্লায়েন্ট কোডটি লিখতে পারি, অর্থাৎ axios.getকেবলমাত্র ব্যবহার না করেaxios({url:"url_goes_here",data:{params:{foo:'bar'}})
srbcheema1

1
এই সার্ভার কোডটি আমাকে কয়েক ঘন্টা বাঁচিয়েছে, ধন্যবাদ! যে কারও জন্য অবাক হওয়ার জন্য, .get কলটির জন্য 'প্যারামগুলি' রেখে যান এবং 'বডি' না যেমন আপনি আশেপাশে অনুসন্ধানের সময় দেখেছিলেন। আপনি ইচ্ছুক হলে সার্ভার সাইডে এটির যেকোনও নামকরণ করতে পারেন তবে ক্লায়েন্টটি পাওয়ার জন্য প্যারামগুলি রাখুন।
ডোরিটো

axios.get('/api', { params}) ! ==axios.get('/api', params)
xgqfrms
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.