Uncaught TypeError 가 발생하는데 원인이 뭘까요?

Uncaught TypeError 가 발생하는데 원인이 뭘까요?

QA

Uncaught TypeError 가 발생하는데 원인이 뭘까요?

답변 3

본문

해당 버튼클릭시 크롬개발자콘솔에 나타는 에러 입니다

회원정보에 포인트를 가져오는 부분입니다

 

Uncaught TypeError: Cannot read properties of null (reading 'point')
    at Object.success (36393?page=10:2629:24)
    at i (jquery-1.12.4.min.js?ver=20200819:2:27449)
    at Object.fireWith [as resolveWith] (jquery-1.12.4.min.js?ver=20200819:2:28213)
    at y (jquery-1.12.4.min.js?ver=20200819:4:22721)
    at XMLHttpRequest.c (jquery-1.12.4.min.js?ver=20200819:4:26925)

 

에러가 발생하는 코드


if($is_memeber) {
    echo json_encode(array('point' => intval($member['mb_point'])), JSON_UNESCAPED_UNICODE);
}
?>

 


 <?php if(count($premium) > 0) { ?>
    var reqPointMap = <?php echo json_encode($PREMIUM_POINT); ?>;
    $(".register-premium").click(function() {
        $.ajax("/api/get_point.php", {
            dataType: 'json',
            success: function(res) {
                const checkVal = $("input[name=wr_4]:checked").val();
                const reqPoint = reqPointMap[checkVal];
                if(res.point < reqPoint) {
                    const r = confirm("현재 포인트가 부족합니다.");
                    if(r) {
                        window.open('point_page');
                    }
                } else {
                    var r = confirm(reqPoint+"포인트를 사용하여 <?php echo $premium['isAvailable'] ? '연장':'신청';?>하시겠습니까?");
                    if(r) {
                        $.post("/api/register_premium.php", {wr_4: checkVal, wr_id: <?php echo $wr_id; ?>}, function(res) {
                            if(res.success) window.location.reload();
                            else {
                                alert(res.errMsg);
                            }
                        }, 'json');
                    }
                }
            }
        });
        return false;
    });
    <?php } ?>

이 질문에 댓글 쓰기 :

답변 3

다음처럼 실행해보는 방법도 있을것 같습니다.


<?php
$out = ['point' => 0];
if($is_memeber) {
    //echo json_encode(array('point' => intval($member['mb_point'])), JSON_UNESCAPED_UNICODE);
    $out['point'] = intval($member['mb_point']);
}
 
echo json_encode($out, JSON_UNESCAPED_UNICODE);
?>

 

또는 오타는 없는지 확인 해보는것도 좋을것 같습니다.


// if($is_memeber) {
if($is_member) {

 



 var reqPointMap = <?php echo json_encode($PREMIUM_POINT); ?>;

이 변수를



 var reqPointMap = "<?php echo json_encode($PREMIUM_POINT); ?>";

로 수정해보시겠어요?

            success: function(res) {
// 이 사이에 console.log( res) 해서 무엇이 나오는지 확인해 보세요.
                const checkVal = $("input[name=wr_4]:checked").val();

echo json_encode(array('point' => intval($member['mb_point'])), JSON_UNESCAPED_UNICODE);

이 코드가 문제라는 건가요? 그런데 원래 이 코드는 정상 작동했었어요.
언제부터인가 갑자기 에러가 발생하더라구요. php 버전에 따라서 뭔가 설정이 변경이 된건지 모르겠네요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,663
© SIRSOFT
현재 페이지 제일 처음으로