>  기사  >  웹 프론트엔드  >  CORS 오류: 내 서버가 실행 전 요청에서 \"Content-Type\"을 거부하는 이유는 무엇입니까?

CORS 오류: 내 서버가 실행 전 요청에서 \"Content-Type\"을 거부하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-28 14:21:02446검색

CORS Error: Why Does My Server Reject

CORS 오류: 허용된 헤더 수정

파일 업로드와 함께 POST 요청을 수행하려고 하면 브라우저에 "요청" 오류가 자주 발생합니다. 헤더 필드 Content-Type은 Access-Control-Allow-Headers에서 허용되지 않습니다."

근본 원인:

이 오류는 브라우저가 교차 출처에 대한 요청을 프리플라이트하기 때문에 발생합니다. OPTIONS 요청을 전송하여 "multipart/form-data"와 같은 비표준 콘텐츠 유형을 요청합니다. OPTIONS 요청은 서버가 표준 HTTP 세트에 포함되지 않은 특정 요청 헤더를 허용하는지 확인합니다.

초기 시도 솔루션:

이 문제를 해결하려면 개발자 처음에 POST 요청에 다음 헤더를 추가하려고 시도했습니다.

"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,POST,PUT,DELETE,OPTIONS",
"Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"

후속 오류:

그러나 이로 인해 새로운 오류가 발생했습니다. "요청 헤더 필드 액세스- Control-Allow-Origin은 Access-Control-Allow-Headers에 의해 허용되지 않습니다."

해결 방법:

서버에서 "Content- "Access-Control-Allow-Headers" 구성에" 헤더를 입력하세요. 브라우저는 "Content-Type" 헤더가 포함된 프리플라이트 OPTIONS 요청을 보내고, 서버가 이를 허용하지 않으면 CORS 요청은 실패합니다.

이 오류를 해결하려면 개발자는 Angular의 기본 "애플리케이션을 덮어쓰거나" /json" 콘텐츠 유형을 입력하거나 서버의 Access-Control-Allow-Headers 구성에서 "Content-Type"을 허용합니다.

Angular 코드 샘플:

기본값을 덮어쓰려면 Angular의 헤더에는 다음 코드를 사용할 수 있습니다:

<code class="typescript">$http.post(url, data, {
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    }
});</code>

위 내용은 CORS 오류: 내 서버가 실행 전 요청에서 \"Content-Type\"을 거부하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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