1

API からデータを取得するスクリプトを作成しています。

const success = (response) => {
  console.log(response);
};

const failed = (error) => {
  console.log(error);
};

axios.$http.get('/somedata')
  .then((response) => {
    success(response.data);
  })
  .catch((error) => {
    failed(error);
  });

/somepageは存在しないページなので、404 を返します。しかし、キャッチはこれを処理していません。なぜだめですか?私のコンソールにはエラーがありますTypeError: Cannot read property 'data' of undefinedfailed()関数を実行しないのはなぜですか? 理解できない。

4

3 に答える 3

1

401エラー(404エラーではない)を処理するカスタムインターセプターに関連していることがわかりました...

于 2016-12-02T23:21:10.783 に答える
0

404 のチェックを実装できます。

axios.$http.get('/somedata')
  .then(response => {
    if(response.status !== 404) //or any status code really
        success(response.data);
    else
        failed(response)
  })
  .catch((error) => {
    failed(error);
  });

次に、おそらくチェックしたいのは、返されるのが 200 であることを確認することです。

axios.$http.get('/somedata')
  .then(response => {
    if(response.status === 200)
        success(response.data);
    else
        failed(response)
  })
  .catch((error) => {
    failed(error);
  });
于 2016-12-04T01:53:50.240 に答える
0

エラーメッセージから判断すると、「success(response.data);」のようです。が呼び出されています。サーバーが、実際に http 応答コード 404 を返すのではなく、「エラー 404」のようなページを正常に返す可能性はありますか?

于 2016-12-02T23:05:24.287 に答える