Axios: Tetapkan kode/status untuk "Kesalahan Jaringan"

Dibuat pada 20 Jul 2016  ·  69Komentar  ·  Sumber: axios/axios

Saya mencoba mendeteksi ketika server saya sedang down sehingga saya dapat menampilkan pesan kesalahan yang sesuai kepada pengguna.

Dalam hal ini, permintaan jaringan axios menimbulkan kesalahan yang berbeda dari semua kesalahan axios lainnya, seperti yang dibahas di sini: https://github.com/mzabriskie/axios/issues/204

Dalam kode saya, sepertinya satu-satunya cara untuk mendeteksi kesalahan ini adalah dengan memeriksa err.message:
if (err.message === "Network Error"){/*tell user the server is down*/}

Ini mengganggu saya karena perbandingan string sedikit berisiko; mungkin suatu hari pesan ini akan diterjemahkan, dan kode saya akan gagal.

Akan sangat bagus jika err.status atau err.code (atau err.???) disetel ke beberapa nilai terdokumentasi yang dapat kita periksa dalam kode kita.

Apakah ada cara lain untuk mendeteksi skenario ini yang saya lewatkan?
Terima kasih semuanya!

Komentar yang paling membantu

Saya mengalami masalah ini. Adakah yang bisa membantu saya?

Respons server adalah 401 tetapi axios memberi saya ini:

kesalahan -> "Kesalahan Jaringan"
error.response --> tidak terdefinisi
error.status --> tidak terdefinisi

Semua 69 komentar

Saya pikir Anda benar. Kode status akan masuk akal.

Seperti yang dikatakan seseorang di #204, ada beberapa kasus di mana tidak mungkin untuk menangkap kesalahan jaringan di browser, jadi Axios merespons dengan kesalahan umum ( new Error('Network error') ). Jika Anda ingin membedakannya dari respons buruk (kode status !== 2xx atau pemeriksaan khusus) saya pikir cara terbaik adalah dengan memeriksa properti status alih-alih pesan kesalahan. Misalnya:

axios.request(options).catch(function(error) {
  if (!error.status) {
    // network error
  }
});

Saya pikir menyetel kode status khusus akan menjadi ide yang buruk (dapat menyebabkan lebih banyak kebingungan) dan menyetel properti tertentu tidak akan membantu sama sekali karena kami hanya memiliki satu kasus kesalahan.

Tentu saja di Node.js lebih mudah karena Anda memiliki akses ke kesalahan yang sebenarnya dan dapat memeriksa sesuai dengan dokumentasi Node.js.

Ah, jadi kesalahan apa pun yang dilakukan oleh panggilan Axios dijamin 1) memiliki status, atau 2) menjadi kesalahan jaringan umum? Saya kira itu cukup baik.

Sejauh ini, saya tidak bisa mendapatkan kode kesalahan seperti 404.500 .., Masih saya mendapatkan Kesalahan Jaringan. Bagaimana cara mengatasi ini?
instance.post('/foo', {request_id : 12345})
.then(fungsi(respons) {})
.catch(fungsi(kesalahan){
console.log(kesalahan); // Kesalahan Jaringan
console.log(error.status); // tidak terdefinisi
console.log(kesalahan.kode); // tidak terdefinisi
});

Kesalahan Jaringan berarti Axios tidak dapat terhubung ke server Anda sama sekali, sehingga tidak dapat memperoleh kode kesalahan dari server. Mungkin mencobanya dengan alat lain (curl, tukang pos, atau browser) untuk memastikan Anda dapat terhubung?

Saya dapat terhubung dengan server saya, itu benar-benar mengembalikan kode Kesalahan 404 dan dengan beberapa server panggilan API lainnya mengembalikan 500 kesalahan server Internal, tetapi saya masih tidak bisa mendapatkan kode kesalahan jaringan melalui skrip (yaitu, console.log ( error.status); // tidak terdefinisi).

Ada di error.response.status .

Saya mengalami masalah ini. Adakah yang bisa membantu saya?

Respons server adalah 401 tetapi axios memberi saya ini:

kesalahan -> "Kesalahan Jaringan"
error.response --> tidak terdefinisi
error.status --> tidak terdefinisi

Ketika kesalahan adalah "kesalahan jaringan" itu berarti Axios tidak dapat terhubung ke server Anda, atau karena alasan tertentu tidak mendapatkan respons dari server Anda. Sehingga error 401 tidak pernah masuk ke Axios. Mungkin memposting pertanyaan dengan beberapa contoh kode di StackOverflow?

Mengalami ini saat menggunakan AWS API-Gateway. Bagi siapa pun yang melihat masalah yang sama, ini adalah masalah dengan kesalahan 4xx (dalam kasus saya 401) tidak merespons dengan header CORS. Menghabiskan berjam-jam memecahkan masalah sialan ini! Terima kasih @jonathan-stone telah mengarahkan pemecahan masalah saya ke arah yang benar.

@codygreen Saya masih mengalami masalah ini dan saya mengalami ini https://forums.aws.amazon.com/message.jspa?messageID=763752

Sudahkah Anda menemukan solusi?

Apakah ada yang punya solusi untuk masalah ini?

Masalah saya adalah dengan Jest+ Axios. Saya menyelesaikannya dengan menambahkan ini ke package.json saya:

"jest": {
    "testEnvironment": "node"
}

Ini berfungsi, meskipun sepertinya saya tidak dapat menemukan dokumentasi untuk mendukungnya. Saya berasumsi bahwa error.response harus kosong pada kesalahan jaringan jika tidak, itu adalah kesalahan api.

axios.request(options).catch(function(error) {
  if (!error.response) {
    // network error
  } else {
    // http status code
    const code = error.response.status
    // response data
    const response = error.response.data
  }
});

Apakah ada yang menemukan solusi terbaik tentang ini? Orang Axios membuat kebisingan :(

Saya juga mendapatkan kesalahan ini hari ini, saya tidak tahu apa masalahnya, ini skrip saya:

js var url = "http://localhost:8000/"; Axios.get(url).then(function(response){ alert(response) }).catch(function(error){ alert(error) });

http://localhost :8000/ mengembalikan respons JSON, ini tidak berfungsi di host lain

Ini mungkin kesalahan Cors.

Baris 87, telah disetel ke 'Kesalahan Jaringan' di adaptor xhr? bagaimana mengubah ini sehingga kesalahan dapat ditangkap?
https://github.com/axios/axios/blob/d7f021b8d4cc50bfa0653011bc02452d234d1255/lib/adapters/xhr.js#L84 -L91

Buruk saya, ini bukan masalah tetapi perilaku yang diharapkan karena keamanan browser. Respons kesalahan XHR sekarang menerima ProgressEvent pada kode status kesalahan.

Saya mengalami masalah yang sama. Saya percaya ini masalah dengan CORS. Adakah yang menemukan solusi yang baik untuk ini?

@codygreen apakah Anda berhasil memperbaiki masalah Anda dengan API Gateway? Bahkan tidak dapat mengetahui kode status respons untuk membantu saya men-debug lebih lanjut.

Masalah umum yang sama di sini. Bagi saya itu pasti CORS. Peramban membuat permintaan OPSI ke server dan saya tidak memiliki pengaturan penangan untuknya (dalam simpul). Axios akan menyelesaikan permintaan (gagal) dengan sukses tetapi dengan respons yang tidak ditentukan

      return axios.httpClients.server.post('/someUrl, {
        someData:some_data
      }).then(response => {
        console.log(response);
        //the following errors out because response is undefined
        if (response.data && response.data.success === true) {
        }
      }).catch(err => {
           //catch never triggered
            console.log(err)
      });

Apa kode respons Anda dari respons? jika ini adalah kesalahan jaringan, saat menggunakan Fetch API, browser akan mencatatnya ke konsol tetapi tidak meneruskannya ke JavaScript karena alasan keamanan sehingga isi kosong. Lihat FETCH STANDERS , jika Anda ingin mengakses kesalahan jaringan dari respons, ubah kode respons HTTP menjadi 200 dan sertakan pesan kesalahan di badan respons.

Masalah saya adalah masalah dns. Ini berhasil di tukang pos tetapi gagal di axios. Mencoba curl untuk mengetahui bahwa itu juga gagal di sana. Jadi DNS saya tidak dikonfigurasi dengan benar. Periksa apakah Anda mengalami masalah ini.

Tidak yakin apakah ini berlaku untuk kasus lain, tetapi inilah cara saya memecahkan masalah yang sama (mengingat kita berbicara CORS ).

Di sisi Frontend , pastikan Anda meneruskan headers sebagai parameter dalam permintaan PUT atau POST :

const axiosParams = {
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Accept': 'application/json',
  },
};

axios.put(`${api.url}/like`, axiosParams)
  .then((response) => {
    // ...
  });

Dan di sisi Backend , pastikan Anda menggunakan CORS dengan Express:

// server.js
const express = require('express');
const app = express();

var cors = require('cors'); // Yep, you need to install this
app.use(cors()); // Works 🎉

Referensi: di sini dan di sini .

Teman-teman, saya juga berjuang dalam masalah ini untuk berhenti sementara. Tapi saya menemukan masalah createError jaringan pos axios saya di perangkat Android sekarang. Alasan untuk Kesalahan Jaringan axios adalah karena data formulir yang saya berikan ke axios berisi jenis objek data yang salah, saya kira. Saya telah menyertakan objek gambar (objek ImagePicker dari Expo) sebagai salah satu parameter data formulir yang saya pikir tidak diterima oleh aksioma. Axios mungkin hanya menerima string, float, int, atau gambar sebagai param. gambar tidak dapat lulus sebagai param, ini bukan jenis gambar, ini adalah objek asli yang bereaksi, saya telah menghapusnya dan menyertakan bidang gambar sebagai param dengan menetapkan image.uri ke nilai param kemudian berfungsi. Semoga ini bisa membantu beberapa orang yang mungkin mengalami masalah yang sama seperti yang saya hadapi sebelumnya.
Menghapus beberapa data formulir Anda satu per satu saat Anda menguji kesalahan Jaringan axios, Anda akan mengetahui mana yang menjadi penyebab masalah.

~ @codygreen @hammadzz apakah Anda menemukan solusi untuk ini dengan Amazon API Gateway?~

Pembaruan: jika ada yang menemukan ini dengan API Gateway dan CORS, Anda harus menambahkan header respons access-control-allow-origin ke respons Anda.

Seperti yang dikatakan seseorang di #204, ada beberapa kasus di mana tidak mungkin untuk menangkap kesalahan jaringan di browser, jadi Axios merespons dengan kesalahan umum ( new Error('Network error') ). Jika Anda ingin membedakannya dari respons buruk (kode status !== 2xx atau pemeriksaan khusus) saya pikir cara terbaik adalah dengan memeriksa properti status alih-alih pesan kesalahan. Misalnya:

axios.request(options).catch(function(error) {
  if (!error.status) {
    // network error
  }
});

Saya pikir menyetel kode status khusus akan menjadi ide yang buruk (dapat menyebabkan lebih banyak kebingungan) dan menyetel properti tertentu tidak akan membantu sama sekali karena kami hanya memiliki satu kasus kesalahan.

Tentu saja di Node.js lebih mudah karena Anda memiliki akses ke kesalahan yang sebenarnya dan dapat memeriksa sesuai dengan dokumentasi Node.js.

Jika Anda di sini dari Google, perhatikan bahwa API ini tidak digunakan lagi. Ini dari 2016, v <0,13.

Anda ingin memeriksa error.response ketika server merespons, error.response === undefined untuk status offline dan kasus khusus error.code === 'ECONNABORTED' untuk timeout.

Pembaruan: jika ada yang menemukan ini dengan API Gateway dan CORS, Anda harus menambahkan header respons ke respons Anda:

access-control-allow-origin: *

Pasti jangan lakukan ini. Tetapkan asal sesuai alih-alih * .

Bagi saya itu masalah cors , jika Anda menggunakan laravel, dan Anda mendefinisikan a

 ->middleware(['auth:api'])

Anda harus menambahkan semua middleware lain yang Anda perlukan ke rute ini secara eksplisit itu tidak diwariskan

->middleware(['auth:api','cors']);

Saya juga menghadapi masalah ini, gunakan alamat IP lokal Anda alih-alih localhost (misalnya 10.0.0.12:8083 ). itu berhasil untuk saya.

Jadi jika saya benar, status 0 dari permintaan axios tampaknya muncul dalam beberapa kasus. tetapi tidak dapat ditentukan secara terprogram dengan tepat kasus mana yang ditemuinya.

Kasus-kasus ini termasuk ketika permintaan preflight CORS gagal, dan karenanya permintaan sebenarnya tidak pernah dicoba. Karena itu, status 404 tidak sesuai.

Seseorang perlu membeli @joelnet bir. Ini menyelamatkan hari saya:

https://github.com/axios/axios/issues/383#issuecomment -308606088

Orang lain mungkin memiliki masalah yang berbeda, tetapi itu berhasil untuk saya.

Saya mendapatkan kesalahan ini sebentar-sebentar. Saya kira ini bukan masalah CORS.
Api/server saya adalah server .net.
Adakah orang lain yang menghadapi ini sebentar-sebentar?

Saya mengalami kesalahan ini karena saya tidak menentukan HTTP atau https. Terutama kode itu sendiri menimbulkan kesalahan pada protokol yang tidak ditentukan. Ini harus ditangani atau dalam meta kesalahan, itu harus dimasukkan.

Seperti yang dikatakan @jonathan-stone, saya rasa ini tidak bisa diperbaiki, karena Axios tidak tahu apa yang terjadi. Ini seperti mengirim temanmu ke Funyuns dan dia bilang tokonya tutup. Dikatakan "selalu buka" - mengapa toko ditutup. Apakah mereka tutup untuk selamanya (404)? Apakah seseorang sakit (500)? Apakah mereka kehabisan persediaan (503)? Dia tidak tahu, mereka baru saja ditutup (kesalahan jaringan)!

Saya mendapatkan kesalahan ini ketika menembakkan Axios secara berurutan terhadap server Express lokal yang mencoba mengambil berbagai jenis data dari API saya. Bukannya Axios tidak melaporkan kesalahan yang benar - tidak bisa - server Express saya tidak merespons dengan apa pun karena terlalu sibuk.

Jika saya mencoba kembali permintaan (menggunakan retry-axios dari #164 ) saya bisa mendapatkan data atau mungkin kesalahan nyata jika ada yang salah dengan server AVAILABLE.

Untuk memecahkan masalah, Anda harus selalu menentukan
Nginx

add_header 'Access-Control-Allow-Origin' * selalu ;

Untuk memecahkan masalah, Anda harus selalu menentukan
Nginx

add_header 'Access-Control-Allow-Origin' * selalu ;

Jangan lakukan ini. Jangan pernah lakukan ini. Anda tidak akan menonaktifkan firewall Anda hanya untuk membiarkan satu koneksi lewat.

Hai teman-teman, kami telah menyiapkan perlindungan ukuran entitas di proxy kami, ini mengembalikan kesalahan umum tetapi saya tidak bisa mendapatkan kode status 413 ... apakah itu mungkin?

Screenshot 2019-05-07 at 14 19 26

Sudahkah Anda mencoba objek response ?
axios.get(url).then(stuff => console.log(Object.keys(stuff.response));

@ComputerCarl menurut Anda ini memiliki respons yang sukses? Jangan berpikir begitu karena berakhir dengan catch tapi saya bisa mencobanya ...

Maaf! Kepalaku ada di tempat lain! Periksa objek tangkapan ...catch(err => console.log(Object.keys(err.response));

dokumen aksio

Saya miliki di salah satu program saya;
err.response.data.message;

yang saya kirim dari Express;

app.use(function (err, req, res, next) {
  res.status(err.status || 500);
  // this is err.response.data on Axios client
  res.send({ message: 'my custom error' });
});

@ComputerCarl tapi error.response tidak terdefinisi, sama dengan error.status :) Anda dapat melihatnya di tangkapan layar, saya sudah memilikinya di console.log . Hanya error.request merupakan objek XMLHttpRequest, seperti yang Anda lihat

Ok .. Saya tidak tahu mengapa Anda mendapatkan dua kesalahan (413 selain CORS) . Namun, jika Anda menggunakan Express, Anda harus mengaktifkan CORS;

const cors = require('cors');
// ...
app.use(cors());

Juga, seperti yang saya nyatakan di atas , jika server menolak permintaan Anda, maka Axios tidak tahu apa yang menyebabkan kesalahan. Pada titik ini, saya bingung dan Anda harus menunggu seseorang yang lebih pintar untuk menjawab. :-)

@ComputerCarl terima kasih telah mencoba :-D CORS baik-baik saja, saya memiliki banyak panggilan berbeda ke API yang sama di aplikasi dan ini berfungsi dengan baik. Bahkan kesalahan yang dikembalikan dari API dapat saya tangani dengan mudah. Masalahnya adalah dengan ini hanya satu yang dibatalkan pada tingkat proxy.

Saya tidak tahu apakah ini membantu Anda, tetapi saya telah membuat aplikasi yang mem-proxy permintaan. Kerangka kerja yang saya gunakan melahap kesalahan Express. Akhirnya, setelah secara eksplisit meneruskan kesalahan res.send({ message: messageFromProxy }); , saya dapat melihat kesalahan dan mengatasinya pada klien.

Semoga beruntung.

@jonathan-stone berkata, Kesalahan Jaringan berarti Axios tidak dapat terhubung ke server Anda sama sekali, sehingga tidak bisa mendapatkan kode kesalahan apa pun dari server.

mungkin ini akan membantu seseorang.

error.data ;

@balwant-sd seperti yang Anda lihat pada tangkapan layar yang saya kirim di sini , browser mengenali kode status 413 dengan benar, tetapi axios tidak

Bahkan di tab jaringan saya dapat melihat 413 kode status...
Screenshot 2019-06-03 at 15 42 12

Seperti disebutkan di atas, POST Masuk yang mengembalikan kesalahan 401 hanya mengembalikan 'Kesalahan Jaringan' dengan kode sebagai tidak terdefinisi, bukan 401.

Jadi kesalahan ini tampaknya merupakan kesalahan CORS yang salah dikonfigurasi yang hanya mencerminkan pada tab jaringan Anda. Saya memiliki masalah yang sama dengan @ketysek , dan sepertinya ngnix saya tidak menerapkan CORS untuk ini. Seperti yang disebutkan sebelumnya, kesalahan jaringan umum tidak akan pernah membuatnya menjadi axios error.response . Di sini saya suka menyalahkan Backend .. oh tunggu, saya melakukan itu ...

Halo saya juga mengalami masalah yang sama, bahkan permintaan untuk mendapatkan respons yang tepat aksioma selalu mengembalikan "Kesalahan Jaringan" dan masuk ke .catch(function(error) {}); par. apakah ada yang punya solusi untuk masalah ini?

Saya memiliki masalah yang sama hari ini. Masalah ini sebagian besar tentang backend yang tidak mengizinkan asal permintaan HTTP lintas situs. Dalam kasus saya, saya menggunakan Django jadi saya hanya menempatkan kelas corsheaders setinggi mungkin ke MIDDLEWARE :
MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', //..etc ]
Dan saya membuat CORS_ORIGIN_WHITELIST untuk hanya mengizinkan Origins tertentu:
CORS_ORIGIN_WHITELIST = [ "http://localhost:8081" , //..etc ]
Ini untuk Django-cors-header. Jika Anda bukan pengguna Django, Anda harus memeriksa dokumentasi modul header cors favorit Anda.

Seperti yang dikatakan seseorang di #204, ada beberapa kasus di mana tidak mungkin untuk menangkap kesalahan jaringan di browser, jadi Axios merespons dengan kesalahan umum ( new Error('Network error') ). Jika Anda ingin membedakannya dari respons buruk (kode status !== 2xx atau pemeriksaan khusus) saya pikir cara terbaik adalah dengan memeriksa properti status alih-alih pesan kesalahan. Misalnya:

axios.request(options).catch(function(error) {
  if (!error.status) {
    // network error
  }
});

Saya pikir menyetel kode status khusus akan menjadi ide yang buruk (dapat menyebabkan lebih banyak kebingungan) dan menyetel properti tertentu tidak akan membantu sama sekali karena kami hanya memiliki satu kasus kesalahan.

Tentu saja di Node.js lebih mudah karena Anda memiliki akses ke kesalahan yang sebenarnya dan dapat memeriksa sesuai dengan dokumentasi Node.js.

masalah dengan pendekatan ini adalah katakanlah kita menjalankan beberapa kode di axios.then dan kode tersebut memiliki beberapa kesalahan, misalnya "assignment to constant" (yang merupakan kasus saya), dengan pendekatan yang Anda sebutkan, kita akan mendapatkan kesalahan jaringan untuk " tugas untuk konstan"

contoh kode:

axios(options).then(() => {
  const foo = '';
  foo = 'bar'; // will throw error "assignment to constant"
}).catch(error => {
  if (!error.status) {
    // "assignment to constant" will be considered as network error
  }
})

Saya menggunakan fungsi utilitas ini untuk menangkap kesalahan jaringan dari yang lebih rendah di tumpukan panggilan (mencegah mengidentifikasi kesalahan non-sumbu sebagai kesalahan jaringan):

function isNetworkError(err) {
  return !!err.isAxiosError && !err.response;
}

Lihat https://github.com/axios/axios/pull/1419

Saya menggunakan fungsi utilitas ini untuk menangkap kesalahan jaringan dari yang lebih rendah di tumpukan panggilan (mencegah mengidentifikasi kesalahan non-sumbu sebagai kesalahan jaringan):

function isNetworkError(err) {
  return !!err.isAxiosError && !err.response;
}

Lihat #1419

Memecahkan masalah
Terima kasih

@mifi dapatkah Anda menunjukkan contoh yang lebih rinci tentang bagaimana Anda menggunakan isNetworkError untuk mencegah mengidentifikasi kesalahan non-aksios sebagai kesalahan jaringan?

Seperti ini:

try {
  ...
  some code that calls axios
  ...
} catch (err) {
  if (isNetworkError(err)) return alert(‘check your connection);
  throw err;
}

Jika ini adalah kesalahan CORS dan Anda menggunakan Tanpa Server, ini dapat memperbaikinya:

resources:
  Resources:
    # CORS for 4xx errors
    GatewayResponseDefault4XX:
      Type: 'AWS::ApiGateway::GatewayResponse'
      Properties:
        ResponseParameters:
          gatewayresponse.header.Access-Control-Allow-Origin: "'*'"
          gatewayresponse.header.Access-Control-Allow-Headers: "'*'"
        ResponseType: DEFAULT_4XX
        RestApiId:
          Ref: 'ApiGatewayRestApi'

Ketika kesalahan adalah "kesalahan jaringan" itu berarti Axios tidak dapat terhubung ke server Anda, atau karena alasan tertentu tidak mendapatkan respons dari server Anda. Sehingga error 401 tidak pernah masuk ke Axios. Mungkin memposting pertanyaan dengan beberapa contoh kode di StackOverflow?

Saya juga mendapatkan kesalahan yang sama, Bagi saya, Ini mencapai server dan saya merespons dengan 403 dan JSON, yang menghasilkan Network Error di Axios

Saya dapat melihat respons di tab jaringan browser, tetapi di blok tangkap err.response tidak ditentukan

image

image

@narenderv7 saya juga

@WarisR Saya telah memperbaikinya dengan mengizinkan kor di sisi server. Saya pikir masalah Axios tetapi sebenarnya tidak. Saya dapat membantu Anda jika Anda memberi tahu saya masalah yang sebenarnya Anda hadapi.

Tambahkan di server 'Access-Control-Allow-Origin': '*'

@ketysek Saya mengalami kesalahan yang sama

Screenshot from 2019-12-26 16-48-22

apakah Anda menemukan cara untuk menangkap kesalahan ini?

Hai teman-teman, saya memiliki masalah kesalahan CORS di mana mendapat respons dengan status 403 (4 * & 5 )Nginx mengirimkan header "Access-Control-Allow-Origin" hanya untuk status respons 2 & 3 *.

saya menyelesaikan masalah ini, edit konfigurasi nginx dari:
add_header 'Access-Control-Allow-Origin' '*';
ke:
add_header 'Access-Control-Allow-Origin' '*' always;

Saya memiliki masalah yang sama saya mengujinya menggunakan axios 0.18.0 dan 0.19.0

Langkah:
saya membuat permintaan saya dengan token yang kedaluwarsa terkadang error.respons datang dengan benar, tetapi terkadang respons error datang tidak terdefinisi dan pesannya adalah 'Network error'. Mengapa ini terjadi karena kesalahan backend atau bug di axios?

Kadang-kadang mungkin disebabkan oleh pemblokir AD di browser Anda ...
Coba mode incognito atau private , atau unduh browser baru untuk menguji ...

@narenderv7 Ya, itu kesalahan sisi server. Tapi menurut saya Axios seharusnya bisa menangani error dari kasus ini, kan?

Saya perlu membedakan dua kasus itu:

Seperti yang saya periksa. pengembalian kesalahan oleh blok catch sama dalam kedua kasus di atas.

Masih ada masalah:
https://github.com/axios/axios/issues/1296

Kesalahan masih ada, jika ada yang punya solusi untuk masalah ini, tolong bagikan dengan kami.

Saya menggunakan fungsi utilitas ini untuk menangkap kesalahan jaringan dari yang lebih rendah di tumpukan panggilan (mencegah mengidentifikasi kesalahan non-sumbu sebagai kesalahan jaringan):

function isNetworkError(err) {
  return !!err.isAxiosError && !err.response;
}

Lihat #1419

kesalahan batas waktu juga dapat cocok dengan kondisi tersebut.
image

Apakah halaman ini membantu?
0 / 5 - 0 peringkat