반응형
오류
jQuery로 $.ajax 호출하는데 다음과 같은 오류가 발생했다.
Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
원인을 알아보니 스프링 시큐리티 csrf 설정 관련 오류이다. 사용자 인증 되지 않은 상태(비로그인)에서는 $(document).ajaxSend
ajax 설정에서 token과 header가 null로 넘어가서 발생한 오류이다.
해결
token, header null 체크를 추가했다.
해결 전
$(function () {
var token = $("meta[name='_csrf']").attr('content');
var header = $("meta[name='_csrf_header']").attr('content');
$(document).ajaxSend(function(event, xhr, options) {
xhr.setRequestHeader(header, token);
});
});
`
해결 후
$(function () {
var token = $("meta[name='_csrf']").attr('content');
var header = $("meta[name='_csrf_header']").attr('content');
if(token && header) {
$(document).ajaxSend(function(event, xhr, options) {
xhr.setRequestHeader(header, token);
});
}
});
반응형
'프로그래밍 > Javascript' 카테고리의 다른 글
부트스트랩 기간 달력 시작/종료일 제한하기 (Bootstrap datepicker, daterange) (2) | 2020.07.21 |
---|---|
같은 element에 등록된 여러 이벤트 리스너 호출을 막는 stopImmediatePropagation() (0) | 2020.07.08 |
아이디, 패스워드 패턴 검사는 정규식으로 하자 (0) | 2020.06.05 |
IE에서 [Syntax Error: ':'가 필요합니다] 발생하면 ES6를 사용한 것 (0) | 2020.04.01 |
[Vue.js] 체크박스 값을 boolean(true/false) 대신 'Y/N' 으로 바꾸기 (2) | 2020.03.01 |