어떻게 크로스 필드 충돌 을 해결 합 니까?
5334 단어 전단
로 컬 에 서 는 proxy Table 을 사용 하여 도 메 인 문 제 를 해결 할 수 있 습 니 다. 구체 적 으로 참고 하 십시오.https://segmentfault.com/a/1190000011715088
서버 사용 가능 nginx 역방향 에이전트 사용 하기
nginx 의 프 록 시 과정 은 nginx 에 요청 을 보 낸 다음 에 요청 을 백 엔 드 서버 에 전달 하 는 것 입 니 다. 백 엔 드 서버 처리 가 끝 난 후에 결 과 를 nginx 에 보 내 고 nginx 는 결 과 를 클 라 이언 트 에 보 냅 니 다.백 엔 드 서버 는 원 격 으로 도 로 컬 에서 도 사용 할 수 있 고 nginx 서버 내부 에서 정의 하 는 다른 가상 호스트 일 수도 있 습 니 다.
다음 항목 의 실제 설정 을 보 냅 니 다.
location /aoda-web {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 5;
}
여러분 이 성공 적 으로 설정 할 수 있 도록 간단하게 설명 하 겠 습 니 다!
1, Access - Control - Allow - Origin, 여기 변수 $http 사용origin 은 현재 소스 필드 를 얻 었 습 니 다. "*" 로 모든 것 을 허용 한다 고 합 니 다. 제 가 실제 사용 하 는 것 이 성공 하지 못 했 습 니 다. 이 유 는 알 수 없습니다.
2. Access - Control - Allow - Credentials 는 true 일 때 요청 할 때 쿠키 를 가지 고 와 서 상황 에 따라 설정 하 는 것 을 말한다.
3. Access - Control - Allow - Methods, OPTIONS 는 반드시 있어 야 합 니 다. 또한 GET 와 POST 도 있 습 니 다. 다른 것 이 있 으 면 추가 할 수 있 습 니 다.
4. Access - control - Allow - Headers, 이것 은 주의해 야 합 니 다. 그 안에 사용자 정의 http 헤드 필드 가 반드시 포함 되 어야 합 니 다. (즉, 전단 요청 인터페이스 에 http 헤드 에 사용자 정의 필드 를 추가 하면 여기 설정 은 반드시 해당 하 는 필드 를 써 야 합 니 다) 위 에서 제 가 비교적 길 게 쓴 것 을 볼 수 있 습 니 다. 저 는 인터넷 에서 자주 사용 하 는 것 을 검색 하여 썼 습 니 다. 안에 '웹 - token' 과 '웹 - token' 이 있 습 니 다."app - token". 이것 은 제 프로젝트 의 전단 요청 시 설정 한 것 이기 때문에 여기에 쓰 겠 습 니 다.
5. Access - Control - Expose - Headers 는 설정 하지 않 아 도 됩 니 다. 인터넷 을 보면 대체적으로 돌아 오 는 머리의 6 개의 기본 필드 만 얻 을 수 있 습 니 다. 다른 추가 필드 를 가 져 오 려 면 먼저 이 설정 을 해 야 가 져 올 수 있 습 니 다.
6. "if ($request method = 'OPTIONS') {" 문 구 는 브 라 우 저가 도 메 인 을 넘 을 수 있 는 지 여 부 를 판단 할 때 먼저 뒤로 options 요청 을 보 낸 다음 에 되 돌아 오 는 결과 에 따라 도 메 인 요청 을 허용 하 는 지 여 부 를 판단 하기 때문에 이 요청 을 단독으로 판단 한 다음 에 바로 되 돌려 줍 니 다.
전체 예
server {
listen 80;
server_name xxx.com;
location /xxx-web/papi {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:7071;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 5;
}
location /xxx-web {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 5;
}
location / {
root /var/www/xxx/wechat/webroot;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
전재 하 다https://blog.csdn.net/envon123/article/details/83270277
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
전단 자동화 워 크 플 로 의 hooks예 를 들 어 우 리 는 git commt 전에 eslint 코드 검사, npm install 전에 프로젝트 의존 도 를 검사 하고 싶 습 니 다.전형 적 인 상황 에서 각종 도 구 는 특정한 동작 이 발생 할 때 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.