1. ホーム
  2. reactjs

[解決済み】Axiosのget in urlは機能するが、2番目のパラメータをオブジェクトにすると機能しない

2022-04-13 17:05:39

質問

GETリクエストを第2パラメータとして送信しようとしているのですが、urlとしては送信できるのにうまくいきません。

これは、$_GET['naam']がテストを返し、動作します。

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 もうまくいきません。

解決方法は?

axios.get は、2 番目のパラメータとしてリクエストコンフィグを受け付けます (クエリ文字列のパラメータではありません)。

を使用することができます。 params の設定オプションで、以下のようにクエリ文字列のパラメータを設定します。

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