Rumah > Artikel > hujung hadapan web > Apakah yang perlu saya lakukan jika "Ralat Tidak Ditangkap (dalam janji): Permintaan gagal dengan kod status 400" berlaku apabila menggunakan axios dalam aplikasi Vue?
Menggunakan axios sebagai rangka kerja permintaan rangkaian dalam aplikasi Vue, pemprosesan data biasanya melibatkan komunikasi dengan API bahagian belakang. Walau bagaimanapun, dalam beberapa kes, kami mungkin menghadapi ralat iaitu "Ralat Tidak Ditangkap (dalam janji): Permintaan gagal dengan kod status 400". Ralat ini biasanya berlaku apabila meminta API, menunjukkan bahawa permintaan telah dihantar, tetapi pelayan tidak dapat memproses permintaan kerana format data yang salah atau parameter yang salah.
Bagaimana untuk menangani ralat ini? Di bawah ini kami akan membincangkan beberapa penyelesaian yang mungkin.
Pertama, kita perlu menyemak URL dan parameter permintaan API untuk memastikan ia memenuhi keperluan API. Masalah ini biasanya disebabkan oleh parameter yang salah atau URL yang salah disediakan semasa meminta API, menyebabkan pelayan tidak dapat memproses permintaan.
Anda boleh menggunakan alatan pembangunan penyemak imbas Chrome untuk melihat URL dan parameter yang diminta untuk menyemak sama ada ia betul.
Dalam aplikasi Vue, kami biasanya menggunakan pemalam axios untuk menghantar permintaan HTTP. Jika anda perlu menetapkan parameter tertentu atau fail pengepala dalam pengepala permintaan apabila meminta API, maka kami perlu memastikan bahawa pengepala permintaan ditetapkan dengan betul dalam pemalam axios.
axios.defaults.headers.common['Authorization'] = 'Pembawa ' + token;
Dalam kod di atas, kami menetapkan pengepala permintaan untuk menambahkan token Pembawa kepada Kebenaran.
Dalam aplikasi, jenis data yang kita kenal ialah JSON. Apabila memproses data dalam aplikasi Vue, kami perlu memastikan bahawa data dihantar ke pelayan dalam format JSON. Jika kami menghantar data dalam format lain (contohnya, data borang atau data format XML), pelayan mungkin mengembalikan ralat 400.
Gunakan Content-Type: application/json
pengepala untuk memastikan data dihantar dalam format JSON. Berikut ialah contoh menghantar objek data ke API bahagian belakang dalam format JSON.
biarkan data = { nama: 'John', umur: 30 };
axios.post('/api/user', JSON.stringify(data), { headers: { 'Content-Type': 'application/json ' } });
Kita boleh menggunakan pemintas tindak balas axios untuk menangkap ralat dan memaparkan mesej ralat. Dalam aplikasi Vue, kita boleh mencipta contoh axios dalam fail main.js dan menambah pemintas respons.
Dalam coretan kod berikut, kami telah menambah pemintas respons pada tika axios. Apabila ralat permintaan berlaku, pengendali ralat pemintas respons dipanggil dan mesej ralat dipaparkan.
import axios dari 'axios';
import Vue dari 'vue';
let instance = axios.create({
baseURL: 'http://localhost:3000',
tamat masa: 30000
});
});
instance.interceptors.response.use(function (respons) {
return response;
}, function (error) {
Vue.prototype.$message.error(error.message);
return Promise.reject(error);
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika "Ralat Tidak Ditangkap (dalam janji): Permintaan gagal dengan kod status 400" berlaku apabila menggunakan axios dalam aplikasi Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!