Nginx 구성 도메인 간 요청 오류 Access-Control-Allow-Origin * 해결 방법
머리말
403 도메인 간 오류가 발생하면 no 'access-control-allow-origin' header is present on the requested resource
nginx 서버에 대한 응답 헤더 매개 변수를 구성해야 합니다.
1. 해결 방법
nginx 구성 파일에서 다음 매개 변수를 구성하면 됩니다.
location / { add_header access-control-allow-origin *; add_header access-control-allow-methods 'get, post, options'; add_header access-control-allow-headers 'dnt,x-mx-reqtoken,keep-alive,user-agent,x-requested-with,if-modified-since,cache-control,content-type,authorization'; if ($request_method = 'options') { return 204; } }
위 구성 코드로 문제를 해결할 수 있습니다. 자세히 공부하고 싶지 않다면 여기를 보세요 =-=
2. 설명
1.
서버는 기본적으로 도메인 간 교차가 허용되지 않습니다. nginx 서버에 `access-control-allow-origin *`을 구성하면 서버가 모든 요청 소스(원본)를 수락할 수 있다는 의미, 즉 모든 크로스 도메인 요청을 수락한다는 의미입니다.
2.access-control-allow-headers는 다음 오류를 방지하기 위한 것입니다.
요청 헤더 필드 콘텐츠 유형은 실행 전 응답의 access-control-allow-headers에서 허용되지 않습니다.
this 오류는 현재 요청된 콘텐츠 유형의 값이 지원되지 않음을 나타냅니다. 실제로 이는 "application/json" 유형 요청을 시작했기 때문에 발생했습니다. 여기에는 실행 전 요청이라는 개념이 포함됩니다. 아래의 "실행 전 요청" 소개를 참조하세요.
3. access-control-allow-methods는 다음 오류를 방지합니다.
preflight 응답의 access-control-allow-headers에서 콘텐츠 유형을 허용하지 않습니다.
4. post 요청을 보낼 때 nginx가 여전히 액세스를 거부하는 오류를 처리하기 위해 204 반환이 추가되었습니다
"실행 전 요청"을 보낼 때 메서드 옵션을 사용해야 하므로 서버에서 이 메서드를 허용해야 합니다.
3. 프리플라이트 요청
사실 위 구성에는 w3c 표준인 cros가 포함되어 있으며, 전체 이름은 교차 도메인 문제를 해결하기 위해 제안된 교차 출처 리소스 공유를 요청했습니다.
CORS(Cross-Origin Resource Sharing) 표준은 서버가 어떤 원본 사이트가 어떤 리소스에 액세스할 권한이 있는지 선언할 수 있도록 하는 새로운 http 헤더 필드 세트를 추가합니다. 또한 사양에서는 서버 데이터에 부작용이 있을 수 있는 http 요청 메서드(특히 특정 MIME 유형의 get 또는 post 요청 이외의 http 요청)에 대해 브라우저가 먼저 옵션 메서드를 사용하여 실행 전 요청을 시작해야 한다고 요구합니다. (실행 전 요청) 서버가 도메인 간 요청을 허용하는지 여부를 확인합니다. 서버는 권한을 확인한 후 실제 http 요청을 시작합니다. 실행 전 요청이 반환되면 서버는 클라이언트에 ID 자격 증명(쿠키 및 http 인증 관련 데이터 포함)을 전달해야 하는지 여부를 알릴 수도 있습니다.
사실 콘텐츠 유형 필드가 application/json인 요청은 위에서 언급한 특정 MIME 유형에 대한 게시물 요청이며, CORS는 콘텐츠 유형이 다음 MIME 유형에 속하지 않는 경우 모두 실행 전 요청이라고 규정합니다. :
application/x-www-form-urlencoded
multipart/form-data
text/plain
그래서 application/json 요청은 공식적인 통신 이전에 "preflight" 요청을 추가합니다. 이번에는 "preflight" 확인" 요청은 헤더 정보를 가져옵니다 access-control-request-headers: content-type:
options /api/test http/1.1 origin: http://foo.example access-control-request-method: post access-control-request-headers: content-type ... 省略了一些
서버가 응답할 때 반환된 헤더 정보에 access-control-allow-headers: content-type이 포함되어 있지 않으면 no를 의미합니다. 기본이 아닌 콘텐츠 유형을 허용합니다. 즉, 다음 오류가 발생합니다.
요청 헤더 필드 콘텐츠 유형은 실행 전 응답의 액세스 제어 허용 헤더에 의해 허용되지 않습니다.
위 내용은 Nginx 구성 도메인 간 요청 오류 Access-Control-Allow-Origin * 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











nginx 버전을 쿼리 할 수있는 메소드는 다음과 같습니다. nginx -v 명령을 사용하십시오. nginx.conf 파일에서 버전 지시문을 봅니다. nginx 오류 페이지를 열고 페이지 제목을 봅니다.

클라우드 서버에서 nginx 도메인 이름을 구성하는 방법 : 클라우드 서버의 공개 IP 주소를 가리키는 레코드를 만듭니다. Nginx 구성 파일에 가상 호스트 블록을 추가하여 청취 포트, 도메인 이름 및 웹 사이트 루트 디렉토리를 지정합니다. Nginx를 다시 시작하여 변경 사항을 적용하십시오. 도메인 이름 테스트 구성에 액세스하십시오. 기타 참고 : HTTPS를 활성화하려면 SSL 인증서를 설치하고 방화벽에서 포트 80 트래픽을 허용하고 DNS 해상도가 적용되기를 기다립니다.

nginx가 시작되었는지 확인하는 방법 : 1. 명령 줄을 사용하십시오 : SystemCTL 상태 nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. 포트 80이 열려 있는지 확인하십시오. 3. 시스템 로그에서 nginx 시작 메시지를 확인하십시오. 4. Nagios, Zabbix 및 Icinga와 같은 타사 도구를 사용하십시오.

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Windows에서 Nginx를 구성하는 방법은 무엇입니까? nginx를 설치하고 가상 호스트 구성을 만듭니다. 기본 구성 파일을 수정하고 가상 호스트 구성을 포함하십시오. 시작 또는 새로 고침 Nginx. 구성을 테스트하고 웹 사이트를보십시오. SSL을 선택적으로 활성화하고 SSL 인증서를 구성하십시오. 포트 80 및 443 트래픽을 허용하도록 방화벽을 선택적으로 설정하십시오.

Nginx 서버를 시작하려면 다른 운영 체제에 따라 다른 단계가 필요합니다. Linux/Unix System : Nginx 패키지 설치 (예 : APT-Get 또는 Yum 사용). SystemCTL을 사용하여 nginx 서비스를 시작하십시오 (예 : Sudo SystemCtl start nginx). Windows 시스템 : Windows 바이너리 파일을 다운로드하여 설치합니다. nginx.exe 실행 파일을 사용하여 nginx를 시작하십시오 (예 : nginx.exe -c conf \ nginx.conf). 어떤 운영 체제를 사용하든 서버 IP에 액세스 할 수 있습니다.

Docker에서 컨테이너 만들기 : 1. 이미지를 당기기 : Docker Pull [Mirror Name] 2. 컨테이너 만들기 : Docker Run [옵션] [미러 이름] [명령] 3. 컨테이너 시작 : Docker Start [컨테이너 이름]

Docker Container Startup 단계 : 컨테이너 이미지를 당기기 : "Docker Pull [Mirror Name]"을 실행하십시오. 컨테이너 생성 : "docker"[옵션] [미러 이름] [명령 및 매개 변수]를 사용하십시오. 컨테이너를 시작하십시오 : "Docker start [컨테이너 이름 또는 ID]"를 실행하십시오. 컨테이너 상태 확인 : 컨테이너가 "Docker PS"로 실행 중인지 확인하십시오.
