>  기사  >  웹 프론트엔드  >  Vue 애플리케이션에서 axios를 사용할 때 'Uncaught (in promise) Error: Request failed with status code 400'이 발생하면 어떻게 해야 합니까?

Vue 애플리케이션에서 axios를 사용할 때 'Uncaught (in promise) Error: Request failed with status code 400'이 발생하면 어떻게 해야 합니까?

王林
王林원래의
2023-06-24 16:32:319858검색

Vue 애플리케이션에서 axios를 네트워크 요청 프레임워크로 사용하면 데이터 처리에는 일반적으로 백엔드 API와의 통신이 포함됩니다. 그러나 어떤 경우에는 "잡히지 않은(약속된) 오류: 상태 코드 400으로 요청이 실패했습니다."와 같은 오류가 발생할 수 있습니다. 이 오류는 일반적으로 API를 요청할 때 발생하며, 요청이 전송되었지만 잘못된 데이터 형식이나 잘못된 매개변수로 인해 서버가 요청을 처리할 수 없음을 나타냅니다.

이 오류를 처리하는 방법은 무엇입니까? 아래에서는 몇 가지 가능한 솔루션을 다루겠습니다.

  1. API 요청의 URL 및 매개변수 확인

먼저 API 요청의 URL 및 매개변수가 API 요구사항을 충족하는지 확인해야 합니다. 이 문제는 일반적으로 API를 요청할 때 잘못된 매개변수나 잘못된 URL이 제공되어 서버가 요청을 처리할 수 없기 때문에 발생합니다.

Chrome 브라우저의 개발 도구를 사용하면 요청된 URL과 매개변수가 올바른지 확인할 수 있습니다.

  1. axios 요청 헤더 파일 설정

Vue 애플리케이션에서는 일반적으로 axios 플러그인을 사용하여 HTTP 요청을 보냅니다. API를 요청할 때 요청 헤더에 특정 매개변수나 헤더 파일을 설정해야 하는 경우 Axios 플러그인에서 요청 헤더가 올바르게 설정되었는지 확인해야 합니다.

axios.defaults.headers.common['Authorization'] = 'Bearer' + token;

위 코드에서는 Bearer 토큰을 Authorization에 첨부하기 위한 요청 헤더를 설정했습니다.

  1. API 요청 시 올바른 데이터 형식을 보내주세요

애플리케이션에서 우리에게 익숙한 데이터 유형은 JSON입니다. Vue 애플리케이션에서 데이터를 처리할 때 데이터가 JSON 형식으로 서버에 전송되는지 확인해야 합니다. 데이터를 다른 형식(예: 양식 데이터 또는 XML 형식 데이터)으로 보내는 경우 서버는 400 오류를 반환할 수 있습니다.

데이터가 JSON 형식으로 전송되도록 하려면 Content-Type: application/json 헤더를 사용하세요. 다음은 JSON 형식으로 데이터 객체를 백엔드 API로 보내는 예시입니다.

let data = { 이름: 'John', 나이: 30 };
axios.post('/api/user', JSON.stringify(data), { 헤더: { 'Content-Type': 'application/json ' } });

  1. 오류를 포착하고 오류 메시지를 표시합니다

axios 응답 인터셉터를 사용하여 오류를 캡처하고 오류 메시지를 표시할 수 있습니다. Vue 애플리케이션에서는 main.js 파일에 axios 인스턴스를 생성하고 응답 인터셉터를 추가할 수 있습니다.

다음 코드 조각에서는 axios 인스턴스에 응답 인터셉터를 추가했습니다. 요청 오류가 발생하면 응답 인터셉터의 오류 처리기가 호출되고 오류 메시지가 표시됩니다.

'axios'에서 axios 가져오기;
'vue'에서 Vue 가져오기;

let 인스턴스 = axios.create({
baseURL: 'http://localhost:3000',
시간 제한: 30000
});

instance.interceptors.response.use(함수(응답) {
반환 응답;
}, 함수(오류) {
Vue.prototype.$message.error(error.message);
return Promise.reject(error);
});

위 코드 조각에서는 Vue의 $message 인스턴스를 사용하여 오류 메시지를 표시했습니다.

요약

Vue 애플리케이션에서는 일반적으로 axios를 네트워크 요청 라이브러리로 사용합니다. API를 요청할 때 "잡히지 않은(약속된) 오류: 상태 코드 400으로 요청이 실패했습니다." 오류가 발생할 수 있습니다. 이 오류는 일반적으로 API 요청의 URL, 매개변수, 요청 헤더 및 데이터 형식을 확인해야 함을 나타냅니다.

이 문제를 해결할 때 API 요청의 URL과 매개변수를 확인하고, axios의 요청 헤더 파일을 설정하고, 올바른 데이터 형식을 전송하고, 오류를 캡처하고 오류 메시지를 표시함으로써 문제를 해결할 수 있습니다.

위 내용은 Vue 애플리케이션에서 axios를 사용할 때 'Uncaught (in promise) Error: Request failed with status code 400'이 발생하면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.