초코레

Spring Security + Ajax 호출 시 403 Forbidden 에러 본문

에러 노트

Spring Security + Ajax 호출 시 403 Forbidden 에러

초코레 2020. 8. 19. 19:17
  • Spring Security를 이용 중 Ajax의 POST 호출 시 403 Forbidden 에러가 발생
  • 아마 설정 중 csrf 관련 문제인 것 같았다
  • 그렇다면 csrf가 enabled 상태에서 403 Forbidden 에러나지 않으려면?
  • 구글링 결과 아래와 같이 html의 head 태그 내에 csrf meta tag를 추가해준다
1
2
<meta name="_csrf_header" th:content="${_csrf.headerName}">
<meta name="_csrf" th:content="${_csrf.token}">
cs

 

  • 그리고 ajax 호출 시 xhr에 header와 token을 설정해주면 된다
1
2
3
4
5
6
7
8
9
10
11
12
var header = $("meta[name='_csrf_header']").attr('content');
var token = $("meta[name='_csrf']").attr('content');
 
$.ajax({
    url: url,
    beforeSend: function(xhr){
        xhr.setRequestHeader(header, token);
    },
    success: function(res) {
        console.log(res);
    }
});
cs