cari
Rumahhujung hadapan webtutorial jsCara Menggunakan Pemintas Axios untuk Mengendalikan Respons Ralat API

How to Use Axios Interceptors to Handle API Error Responses

Apabila membina aplikasi web moden, pengendalian panggilan API dan responsnya adalah bahagian penting dalam pembangunan. Axios, perpustakaan JavaScript yang popular, memudahkan membuat permintaan HTTP, tetapi ia turut disertakan dengan ciri terbina dalam seperti pemintas yang membolehkan pembangun mengurus respons dan ralat dengan cara yang lebih diperkemas dan cekap.

Dalam artikel ini, kami akan menumpukan pada penggunaan pemintas Axios untuk mengendalikan respons ralat API dengan berkesan, membolehkan anda menyeragamkan pengendalian ralat merentas keseluruhan aplikasi anda.

Apakah Axios?

Axios ialah klien HTTP berasaskan janji untuk JavaScript yang menyokong sintaks async/menunggu untuk membuat permintaan kepada API. Ia popular kerana ia mudah digunakan dan keupayaannya boleh diperluaskan dengan mudah dengan pemintas.

Contoh Asas Axios:

import axios from 'axios';

axios.get('/api/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

Walaupun contoh ini menunjukkan cara mengendalikan permintaan dan ralat dengan .then dan .catch, menggunakan pemintas boleh menjadikan kod anda lebih cekap apabila anda perlu mengurus berbilang permintaan API.

Apakah Axios Interceptors?

Axios pemintas ialah fungsi yang membolehkan anda memintas dan mengendalikan kedua-dua permintaan dan respons sebelum ia diproses oleh .then atau .catch. Ini amat berguna apabila anda perlu menggunakan konfigurasi biasa pada semua permintaan atau mengendalikan respons ralat dengan cara yang seragam.

Terdapat dua jenis pemintas utama:

  1. Pemintas Permintaan: Digunakan untuk mengubah suai atau menambah pengepala, token atau konfigurasi lain pada permintaan sebelum ia dihantar.
  2. Pemintas Balasan: Digunakan untuk mengendalikan respons atau ralat secara global, termasuk mengelog atau mencuba semula permintaan apabila perlu.

Mengapa Menggunakan Pemintas Respons?

Apabila berurusan dengan berbilang titik akhir API, setiap satu mungkin mengembalikan jenis mesej ralat atau kod status yang berbeza. Tanpa pemintas, anda perlu mengendalikan ralat untuk setiap panggilan API individu, yang boleh membawa kepada kod berulang dan tidak dapat diselenggara.

Dengan pemintas respons, anda boleh mengurus semua respons ralat di satu tempat, memastikan pendekatan yang konsisten untuk mengendalikan ralat merentas apl anda.

Menyediakan Pemintas Tindak Balas Axios

1. Pasang Axios

Pertama, pastikan anda telah memasang Axios dalam projek anda:

npm install axios

2. Buat Instance Axios

Untuk menyediakan pemintas, sebaiknya buat tika Axios yang boleh digunakan semula di seluruh apl anda. Ini membantu menyeragamkan permintaan dan pengendalian respons anda.

import axios from 'axios';

axios.get('/api/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

3. Tambah Pemintas Balasan

Anda boleh menambah pemintas tindak balas untuk menangkap dan mengendalikan ralat sebelum ia mencapai blok .then atau .catch anda dalam panggilan API individu anda.

npm install axios

4. Membuat Panggilan API

Dengan pemintas tersedia, anda kini boleh menggunakan apiClient untuk panggilan API anda. Jika sebarang ralat berlaku, ia akan ditangkap dan dikendalikan secara automatik oleh pemintas.

import axios from 'axios';

const apiClient = axios.create({
  baseURL: 'https://api.example.com',  // Replace with your API base URL
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
  },
});

Dalam persediaan ini, anda tidak perlu menulis kod pengendalian ralat untuk setiap panggilan API tunggal. Pemintas memusatkan logik ini dan menjadikan panggilan API anda lebih bersih dan lebih mudah diselenggara.


Kes Penggunaan Praktikal untuk Pemintas Axios

1. Muat Semula Token Automatik

Jika API anda menggunakan token pengesahan (cth., JWT), anda mungkin menghadapi situasi di mana token tamat tempoh dan anda perlu memuat semulanya. Pemintas Axios boleh digunakan untuk memuat semula token secara automatik apabila respons 401 Tidak dibenarkan diterima.

apiClient.interceptors.response.use(
  (response) => {
    // If the response is successful (status code 2xx), return the response data
    return response;
  },
  (error) => {
    // Handle errors globally
    if (error.response) {
      // Server responded with a status code out of 2xx range
      const statusCode = error.response.status;
      const errorMessage = error.response.data.message || 'An error occurred';

      // Handle different status codes accordingly
      if (statusCode === 401) {
        // Handle unauthorized error, for example by redirecting to login
        console.error('Unauthorized access - redirecting to login');
      } else if (statusCode === 500) {
        // Handle server errors
        console.error('Server error - try again later');
      } else {
        // Handle other types of errors
        console.error(`Error ${statusCode}: ${errorMessage}`);
      }
    } else if (error.request) {
      // No response received (network error, timeout, etc.)
      console.error('Network error - check your internet connection');
    } else {
      // Something else happened during the request
      console.error('Request error:', error.message);
    }

    // Optionally, return a rejected promise to ensure `.catch` is triggered in individual requests
    return Promise.reject(error);
  }
);

2. Mengendalikan Ralat Rangkaian

Jika apl anda bergantung pada API luaran, isu rangkaian boleh menjadi masalah biasa. Pemintas Axios boleh membantu menyediakan mesej ralat mesra pengguna sekiranya berlaku kegagalan rangkaian.

// Example API call
apiClient.get('/users')
  .then(response => {
    console.log('User data:', response.data);
  })
  .catch(error => {
    // This will be triggered if the error isn't handled by the interceptor
    console.error('Error fetching users:', error);
  });

Faedah Menggunakan Axios Interceptors

  1. Pengendalian Ralat Berpusat: Daripada menulis kod pengendalian ralat untuk setiap panggilan API, anda boleh mengendalikan ralat di satu tempat.

  2. Kod Pembersih: Memandangkan pengendalian ralat diurus oleh pemintas, panggilan API individu anda akan menjadi lebih bersih dan lebih ringkas.

  3. Kebolehselenggaraan yang dipertingkatkan: Perubahan pada pengendalian ralat (cth., menambah kes baharu atau menapis mesej ralat) boleh dilakukan di satu tempat, menjadikan pangkalan kod lebih mudah diselenggara.

  4. Ketekalan: Pemintas memastikan pendekatan yang konsisten untuk mengendalikan ralat, jadi anda tidak perlu risau tentang kehilangan kes tepi atau menulis kod berlebihan.


Kesimpulan

Menggunakan pemintas Axios untuk mengendalikan tindak balas ralat API boleh meningkatkan struktur, kebolehselenggaraan dan ketekalan kod anda dengan sangat baik. Dengan memusatkan logik pengendalian ralat, anda boleh menjadikan panggilan API anda lebih cekap dan mengurangkan kod berulang merentas aplikasi anda.

Pemintas ialah ciri berkuasa Axios yang boleh digunakan untuk pelbagai kes penggunaan, daripada menguruskan penyegaran token kepada memaparkan mesej ralat mesra pengguna semasa kegagalan rangkaian. Mula memanfaatkan pemintas Axios hari ini untuk memudahkan pengendalian ralat dan meningkatkan daya tahan aplikasi anda!

Atas ialah kandungan terperinci Cara Menggunakan Pemintas Axios untuk Mengendalikan Respons Ralat API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
JavaScript in Action: Contoh dan projek dunia nyataJavaScript in Action: Contoh dan projek dunia nyataApr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

JavaScript dan Web: Fungsi teras dan kes penggunaanJavaScript dan Web: Fungsi teras dan kes penggunaanApr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Memahami Enjin JavaScript: Butiran PelaksanaanMemahami Enjin JavaScript: Butiran PelaksanaanApr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanPython vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanApr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python vs JavaScript: Komuniti, Perpustakaan, dan SumberPython vs JavaScript: Komuniti, Perpustakaan, dan SumberApr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsiDari C/C ke JavaScript: Bagaimana semuanya berfungsiApr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)