[경험 총화] 크로스 오 버 문 제 를 철저히 해결 (4 가지)

앞에서 말 했 듯 이 많은 상황 에서 프로젝트 와 프로젝트 간 에 호출 되 고 가끔 은 호출 이 안 되 기 때문에 크로스 오 버 문 제 를 초래 할 수 있 습 니 다. 이것 은 제 가 작은 회사 와 현재 이 큰 회사 두 회사 에서 사용 하 는 것 입 니 다. 여러분 을 도 울 수 있 기 를 바 랍 니 다.프로 토 콜, 도 메 인 이름, 포트 가 일치 하지 않 으 면 도 메 인 간 문제 가 발생 할 수 있 습 니 다.
크로스 필드 요청:
  • 1. jsonp 크로스 도 메 인
  • 2. httpClient 도구 류
  • 3. 응답 헤드 설정
  • 4. nginx 를 이용 하여 퍼 가기 게 이 트 웨 이
  • 1. jsonp 크로스 필드
    이것 은 제 가 하남성 력 상사 에서 그 당시 에 응용 한 것 입 니 다. 배경 은 바로 프론트 데스크 에서 백 스테이지 로 호출 한 것 입 니 다. 그 당시 에 프론트 데스크 에서 개발 한 사람 이 페이지 를 과장 한 것 입 니 다.이전 코드
    <script type="text/javascript"
    	src="http://www.itmayiedu.com/static/common/jquery-1.7.2.min.js?t=2017-07-27"></script>
    <script type="text/javascript">
    	$(document).ready(function() {
    		$.ajax({
    			type : "GET",
    			async : false,
    			url : "http://a.unionpay:8081/ajaxB",
    			dataType : "jsonp",
    			jsonp : "jsonpCallback",//       callback   function     
    			success : function(data) {
    				console.log(data);
    			},
    			error : function() {
    				console.log(data);
    			}
    		});
    
    	});
    </script>
    

    기본 원리:
    그 는 주로 url + jsonp 에 따라 난수 와 유사 한 것 을 만 들 고 요청 했다.
    단점: post 요청 은 지원 되 지 않 습 니 다
    2. httpClient 도구 클래스
    클릭: http Client post 패키지 요청
    단점: 효율 이 느 려 중간 에 리 트 윗 을 했다.
    3. 응답 헤드 설정 (추천)
    이 방법 은 사용 을 권장 합 니 다. 결함 이 없습니다. 보통 필터 에 놓 여 있 습 니 다. (여기 서 프 리 젠 테 이 션 만 합 니 다)
    @RestController
    @SpringBootApplication
    public class UserController {
    
       @RequestMapping("getToken")
       public String getToken(HttpServletResponse response){
           //        ,  :*              
           response.setHeader("Access-Control-Allow-Origin","*");
           return null;
       }
    }
    

    4. nginx 를 이용 하여 퍼 가기 게 이 트 웨 이 (강력 추천)
    그 당시 에 연결 을 했 습 니 다. 그들 로 컬 을 방문 할 때마다 귀 찮 고 연결 하 는 플랫폼 이 많 았 습 니 다. 그 다음 에 테스트 환경의 코드 에 매 핑 을 해서 다른 플랫폼 에 접근 하 는 데 편 의 를 주 었 습 니 다.
    server {
        listen 80 default_server;
    	#           www.demo.com
        server_name  www.demo.com;  
            if ($http_Host !~* ^www.demo.com$)
            {
                return 403;
            }
    
    
        charset utf-8;
    
        access_log  /var/log/nginx/aaa.access.log  main;
    
    	#       ,        www.demo.com/a   
    	location ^~ /a {
            proxy_pass  http://xxxxx:8080/a/;
            proxy_redirect    off;
            proxy_set_header  X-Forwarded-For $remote_addr;
    		}
    	
    	#       ,        www.demo.com/b   
    	location ^~ /b {
            proxy_pass  http://xxxx:8080/b/;
    		proxy_redirect    off;
            proxy_set_header  X-Forwarded-For $remote_addr;
    		}
    
        error_page  404              /error/404.html;
        error_page  500 502 503 504  /error/404.html;
    }
    

    실전 에서 배우 고, 즐거움 속 에서 성장 하 다.

    좋은 웹페이지 즐겨찾기