본문 바로가기

프로그래밍

ajax호출시 발생하는 Uncaught TypeError: Cannot read properties of undefined (reading 'toLowerCase')오류 해결 방법

728x90
반응형

오류

jQuery로 $.ajax 호출하는데 다음과 같은 오류가 발생.

원인

스프링 시큐리티 csrf 설정 관련 오류.

비로그인 상태 에서는 $(document).ajaxSend ajax 설정에서 token과 header가 null로 넘어가서 발생한 오류.

해결

token, header null 체크를 추가.

 

해결 전

var csrfHeader=$("meta[name='_csrf_header']").attr("content");
	var csrfToken=$("meta[name='_csrf']").attr("content");
	
	$(document).ajaxSend(function (e,xhr) {
		xhr.setRequestHeader(csrfHeader,csrfToken);
	})

해결 후

$(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);
        });
    }
});
728x90
반응형