728x90
반응형

XMLHttpRequset를 사용하여 Get방식으로 요청을 하였는데, 

The 'Access-Control-Allow-Origin' header contains multiple values '*, *'

라는 오류 메시지가 발생하였습니다.

 

수행하는 Javascript코드는 아래와 같습니다.

<script type="text/javascript">
window.onload = function() {
	var httpRequest;
	
	document.getElementById("ajaxCall").addEventListener('click', () => {
		var apiKey = document.getElementById("apiKey").value;
		httpRequest = new XMLHttpRequest();
		
	    httpRequest.onreadystatechange = () => {
		    if (httpRequest.readyState === XMLHttpRequest.DONE) {
			      if (httpRequest.status === 200) {
			    	var result = httpRequest.response;
					console.log("REsult=", result);
					var profileInfo="";
					result.forEach(element => {
						console.log( typeof(element) );
						//console.log(element.stringify());						
						profileInfo += element.profileName; 
						profileInfo += "\r\n";
					});
			        document.getElementById("profiles").innerText = profileInfo;
					
			      } else {
                    alert(httpRequest.response)
			      }
		    }
	    };

	    httpRequest.open('GET', 'https://XXX.XXX.XXX/XXXX/translation/profiles?apikey=' + apiKey );
		httpRequest.responseType = "json";	    
	    httpRequest.send();
	});
}
</script>

 

 

수행한 코드의 오류를 Chrome 브라우저에서 디버깅할 대 Console에서는 아래와 같은 오류를 출력합니다.

우측 상단의 빨간 깃발(Issue)을 클릭하면 아래와 같이 이슈를 분석해 줍니다.

 

Resoponse Headers 정보는 아래와 같습니다.

 

Reqeust Headers 정보는 아래와 같습니다.

 

 

 

 

원인분석은 상기 언급한 것과 같습니다.

대책은 백엔드 소스 프로그램에서  CORS세팅을 2번 하였거나,  2개의 백엔드 요소(예, Nginx 와 SpringBoot)에서 중복 설정된 것을 1번만 설정이 되도록 조정

하는 것이겠죠.

728x90
반응형

+ Recent posts