반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- FCM
- jenkins
- node.js
- security
- jquery
- spring3
- config
- ajax
- pwa
- Next.js
- javascript
- Eclipse
- mysql
- MSsql
- popup
- submit
- NextJS
- docker
- centos7
- MariaDB
- SpringBoot
- yona
- nodejs
- PM2
- Push
- rocky9
- Maven
- git
- Java
- mybatis
Archives
- Today
- Total
ふたりで
ajax+post+csrf+spring+security 본문
728x90
반응형
SMALL
spring security에 csrf 설정을 한경우 ajax요청을 post로 하면 404가 발생한다.
이를 해결하려면 spring security에서 발행한 csrf token을 ajax요청 header에 담아
보내면 된다.
1. 설정: 공통으로 모든 화면에 인클루드 되는 파일에 아래와 같이 설정.
예를 들면 head_css.jsp라는 파일을 만들고 모든 화면에 공통으로 로딩되도록 설정 후 아래 소스를 삽입한다.
<!-- ajax 요청시 사용할 csrf meta데이터 설정 -->
<meta id="_csrf" name="_csrf" content="${_csrf.token}"/>
<meta id="_csrf_header" name="_csrf_header" content="${_csrf.headerName}"/>
<script type="text/javascript">
// ajax 요청시 사용할 csrf 글로벌 변수설정
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
</script>
2. 사용: js파일 또는 script에서 아래와 같이 사용.
function ajaxCsrfTest(){
var params ={
a : 'a'
,b : 'b'
};
$.ajax({
type : "POST",
url : ctx + "/front/saveTest",
data : params,
async: false,
beforeSend : function(xhr){
//ajax호출 중 처리
//글로벌 변수로 설정한 csrf token 셋팅
xhr.setRequestHeader(header,token);
},
success : function(data) {
//ajax호출 성공시 후처리
},
error : function(request, status, error) {
//ajax호출 실패시 후처리
}
});
}
728x90
반응형
LIST
'javascript' 카테고리의 다른 글
jquery+LayerPopUp+alert+confirm (0) | 2023.02.17 |
---|---|
브라우저의 뒤로가기 버튼 이벤트 케치 Back Forward Cache (0) | 2023.01.25 |
jquery progressbar by button event(버튼에 의한 진행율 표시) (0) | 2022.11.08 |
jquery+ checkbox selected control by radio button+ 라디오 버튼에 의한 체크박스 컨트롤 하기 (0) | 2022.11.04 |
javascript+jquery+submit+loading 로딩중 표시 하기 (0) | 2022.11.01 |
Comments