Program Tip

요청 받기가 액세스 제어 검사를 통과하지 못함 : 요청 된 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다.

programtip 2020. 12. 27. 19:56
반응형

요청 받기가 액세스 제어 검사를 통과하지 못함 : 요청 된 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다.


내 애플리케이션에서 Tomcat 서버로 Ajax 요청을 보내려고하는데이 오류가 발생합니다 (내 웹 앱이 Chrome에서 실행 중입니다).

실행 전 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함 : 요청 된 리소스에 'Access-Control-Allow-Origin'헤더가 없습니다. 따라서 Origin 'null'은 액세스가 허용되지 않습니다. 응답에 HTTP 상태 코드 403이 있습니다.

나는 사용해 보았다

'Access-Control-Allow-Origin' : 'http://localhost:8080/app',

하지만 작동하지 않았습니다.

내 Ajax 코드 :

 var arr = [1];
   $.ajax({ 
   url: 'http://localhost:8080/app',
   type: 'POST',
   contentType:'application/json',
   headers: {
   'Access-Control-Allow-Origin' : 'http://localhost:8080',
   },
       data: JSON.stringify(arr[0]),
       success: function(data){
        //On ajax success do this
             alert(data);
          }
     });

기본적으로 교차 도메인 AJAX 요청을 수행하려면 요청 된 서버가 교차 출처 자원 공유 (CORS)를 허용해야합니다. 이에 대한 자세한 내용은 http://www.html5rocks.com/en/tutorials/cors/ 에서 확인할 수 있습니다 .

시나리오에서는 실제로 http : // localhost : 8080 / app 서버 측 코드 로 설정해야하는 클라이언트의 헤더를 설정하고 있습니다 .

PHP Apache 서버를 사용하는 경우 .htaccess파일 에 다음을 추가해야 합니다.

Header set Access-Control-Allow-Origin "*"

REST 서비스에 대한 요청의 경우 :

Spring 주석을 사용하여 REST 서비스의 엔드 포인트에서 CORS (리소스 간 원본 공유)를 허용해야합니다.

@CrossOrigin(origins = "http://localhost:8080")

아주 좋은 튜토리얼 : https://spring.io/guides/gs/rest-service-cors/

참조 URL : https://stackoverflow.com/questions/33820142/getting-request-doesnt-pass-access-control-check-no-access-control-allow-orig

반응형