Access-Control-Allow-Origin response header는 서버 응답이 주어진 origin에 공유될 수 있는지 지시해줌.
play에서는 개발 시 vue와 같은 별도의 FE 호출을 받도록 다음과 같이 설정해줌.
cors { allowedOrigins = ["http://localhost:8080", "http://localhost:9000"]
allowedHttpMethods = ["GET", "POST", "PUT"]
methods에 POST를 포함시켜야 POST 호출을 받을 수 있음.
FE에서 호출 시에는 credential을 포함시켜야 cookie가 포함되서 서버에 들어온다.
서버에서 JWT(java web token)을 사용하는 경우 cookie가 들어와야 제 역할을 한다.
FE에서 fetch API를 쓸 때에는 다음과 같이 호출해야 쿠키가 포함된다.
fetch('/yyy/xxx', {
method: 'post',
credentials: 'include',
headers: {
'Csrf-Token': token
}
'include'로 하면 origin이 달라도 쿠키가 포함되며, 이를 'same-origin'으로 바꾸면 포트를 포함한 호스트가 같아야 API가 쿠키를 같이 보낸다.
axios는 기본이 same-origin인듯 하다.
'코딩 > Play' 카테고리의 다른 글
akka application.conf 설정과 빌드 후 play 엡에서 jar 파일을 쓸때 (0) | 2018.07.26 |
---|---|
heroku에 play 앱 빌드하여 배포할 때 주의 사항 (0) | 2018.07.25 |
play에서 환경 마다 다른 conf 파일 쓰기 (0) | 2018.07.25 |
Play - Vue에서 google signin 적용 (0) | 2018.07.05 |
Play - strict-origin-when-cross-origin (0) | 2018.07.05 |