>  기사  >  웹 프론트엔드  >  Vue 포워딩 200 상태 코드를 해결하는 방법

Vue 포워딩 200 상태 코드를 해결하는 방법

PHPz
PHPz원래의
2023-04-12 13:58:221024검색

Vue는 프런트엔드와 백엔드 분리 추세로 인해 점점 더 많은 개발자가 Vue를 사용하여 프런트엔드 애플리케이션을 구축하는 것을 선택하고 있습니다. Vue 개발. 아래에서는 이 문제에 대해 자세히 살펴보겠습니다.

먼저 Vue가 백엔드에 요청을 보낼 때 서버는 HTTP 상태 코드를 반환하여 Vue에 요청 처리 결과를 알린다는 점을 분명히 해야 합니다. HTTP 상태 코드는 HTTP 프로토콜의 상태 표시기로, 요청 결과가 성공, 실패, 리디렉션 등인지 클라이언트에게 알려줍니다.

Vue에서는 일반적인 요청 메서드에는 GET, POST, PUT, DELETE 등이 포함됩니다. 이러한 메서드의 요청 상태 코드는 200, 201, 204, 400, 401, 404, 500 등이 있습니다. 그 중 200 상태 코드는 서버가 요청을 성공적으로 처리했음을 나타냅니다. 200 상태 코드를 전달한다는 것은 어떤 이유로든 백엔드에서 반환된 상태 코드를 200으로 강제해야 함을 의미합니다.

왜 200 상태 코드를 전달해야 하나요? 실제 프로젝트 개발에서 크로스 도메인 요청 문제에 직면할 수 있습니다. 크로스 도메인 요청을 할 때 브라우저는 일반적으로 사용할 수 있는 HTTP 메서드, 헤더 정보 등을 결정하기 위해 OPTIONS 프리플라이트 요청을 시작합니다.

백엔드가 OPTIONS 요청을 처리하지 않고 200이 아닌 상태 코드를 직접 반환하는 경우 브라우저는 이를 가로채 도메인 간 요청을 허용하지 않습니다. 이 경우 브라우저의 가로채기를 우회하려면 백엔드에서 반환된 상태 코드를 200으로 변경해야 합니다.

Vue에서 200개의 상태 코드를 전달하는 방법은 무엇입니까? Vue는 axios 인터셉터를 통해 백엔드에서 반환된 상태 코드를 200으로 수정하는 방법을 제공합니다.

구체적으로, 데이터를 반환하기 전에 반환 결과를 처리하기 위해 axios에 인터셉터를 추가하고 백엔드에서 반환된 상태 코드를 200으로 강제 설정할 수 있습니다. 코드는 다음과 같습니다.

import axios from 'axios';

axios.interceptors.response.use(response => {
  if (response.config.url !== '/login' && response.status !== 200) {
    response.status = 200;
  }
  return response;
}, error => {
  return Promise.reject(error);
});

이 코드에서는 백엔드에서 반환된 데이터를 처리하기 위해 axios.interceptors.response.use 메서드를 통해 인터셉터를 추가합니다. 먼저, 현재 요청한 URL이 로그인 요청인지 확인하고, 그렇지 않은 경우 상태 코드를 200으로 강제 변경하고 처리 결과를 반환합니다.

마지막으로 주의할 점은 200 상태 코드를 전달하는 것은 단지 해결책일 뿐이라는 것입니다. 백엔드가 OPTIONS 요청을 처리하고 상태 코드를 올바르게 반환할 수 있다면 상태 코드를 전달할 필요가 없습니다.

프로젝트 개발에서는 불필요한 문제를 피하기 위해 실제 상황에 따라 우리에게 적합한 솔루션을 선택해야 합니다. Vue 인터셉터를 통해 200 상태 코드를 전달하면 브라우저 도메인 간 문제를 해결할 수 있지만, 부정적인 결과를 피하기 위해 프로젝트에서는 주의해서 사용해야 합니다.

위 내용은 Vue 포워딩 200 상태 코드를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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