javascript/Vue.js

[Vue.js] CORS 에러 문제 해결하기 - proxy 설정하기

http://portfolio.wonpaper.net 2023. 10. 6. 19:15

CORS(Cross-Origin Resource Sharing)

 

Access to XMLHttpRequest at 'http://localhost:8989/api' from origin 
'http://localhost:8080' has been blocked by CORS policy: 
No 'Access-Control-Allow-Origin' header is present on the requested resource.

 

브라우저 자체 보안 관련 사항으로 cross-origin HTTP 요청에 대하여 서버 동의가 필요하고, 이에 동의되지 않을때 거절되는 보안 매커니즘이다.

 

보통의 경우 Backend 와 Frontend 사이의 HTTP 관련 개발환경이 달라서 이를 proxy 설정을 해놓음으로써 자연스레 보안문제 해결을 할수가 있다.

 

여기서는 FrontEnd 상에서 Proxy 설정을 잡는 방법을 알아본다.

 

 

[ proxy 설정하기 ]

 

[ vue.config.js ]

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  // 단일 단어 컴포넌트 사용가능하도록
  lintOnSave:false,
  devServer: {
    proxy: {
      '/api': {
        target: 'https://api서버도메인주소',
        changeOrigin: true,
        pathRewrite : {
          '^/api' : ''
        }
      },
      '/filedownload' : {
        target: 'https://filedownload',
        changeOrigin: true,
        pathRewrite : {
          '^/filedownload' : ''
        }        
      }
    }
  } 
})
 
cs

devServer 안에 proxy 설정을 한다. 

 

axios.get("/api/GetNoticeView");  형태로 Vue 파일 상에서  코딩하면,

proxy 설정소스를 거쳐서 https://api서버도메인주소/GetNoticeView  형태로 자동 타켓팅해준다.

 

 

참고 :  https://velog.io/@minsu2344/Vue-CORS-%EC%97%90%EB%9F%AC-vue.config.js%EB%A1%9C-%ED%95%B4%EA%B2%B0

참고 : https://eunjinii.tistory.com/47