Sangat biasa menggunakan axios dalam aplikasi Vue ialah klien HTTP berasaskan Promise yang boleh digunakan dalam penyemak imbas dan Node.js. Semasa proses pembangunan, mesej ralat "Ralat tidak ditangkap (dalam janji): Permintaan gagal dengan kod status 500" kadangkala muncul untuk pembangun, mesej ralat ini mungkin sukar difahami dan diselesaikan. Artikel ini akan meneroka masalah ini dan penyelesaiannya. . Masalah ini biasanya berlaku apabila terdapat kegagalan bahagian pelayan atau ralat API. Berikut ialah contoh kod:
axios.get('/api') .then(response => { console.log(response) }) .catch(error => { console.log(error) })
Uncaught (in promise) Error: Request failed with status code 500 at createError (createError.js:16) at settle (settle.js:18) at XMLHttpRequest.handleLoad (xhr.js:77)
Sebab mesej ralat ini ialah API bahagian belakang mengembalikan kod status HTTP 500, iaitu "ralat dalaman pelayan" . Apabila ini berlaku, axios menyediakan maklumat ralat dalam data nilai pulangan dan termasuk kod status respons dalam objek ralat. Oleh itu, dalam kod kami di atas, apabila axios meminta API bahagian belakang untuk mengembalikan ralat 500, ia akan memasuki fungsi tangkapan dan mengeluarkan mesej ralat.
Bagaimana untuk menyelesaikan masalah ini? Kita boleh menggunakan kaedah berikut.
3.2 Semak kod API
Kedua, kita harus menyemak kod API dan menentukan sama ada terdapat masalah dengannya. Apabila menyemak kod API, anda harus menyemak aspek berikut:
Jika terdapat sebarang ralat sintaks atau ralat logik. Sama ada ia boleh mengendalikan permintaan dengan betul dan mengembalikan respons yang betul. Dalam persekitaran pembangunan, adakah terdapat sebarang pengecualian yang tidak dikendalikan?axios.get('/api') .then(response => { console.log(response) }) .catch(error => { if (error.response) { console.log(error.response.data) console.log(error.response.status) console.log(error.response.headers) } else if (error.request) { console.log(error.request) } else { console.log('Error', error.message) } console.log(error.config) })
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika 'Ralat Tidak Ditangkap (dalam janji): Permintaan gagal dengan kod status 500' berlaku apabila menggunakan axios dalam aplikasi Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!