首页 > 解决方案 > Ajax 请求中未定义变量

问题描述

我正在使用 Ajax 从 php 文件中获取数据。我可以在控制台中看到获取的数据,但是每当我尝试打印变量作为响应时,它都显示为未定义!控制台数据----

Object { 
        draw: 0, 
        recordsTotal: 1, 
        recordsFiltered: 1, 
        data: (1) […], 
        input: [] 
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<script>
funBroadcast();
function funBroadcast()
{
    $.ajax({
        url: "http://localhost:8080/afk/temp.php",
        type: 'get',
        success: function(data){
            console.log(data);
            alert(data['recordsFiltered']);//undefined value
            if(data['recordsFiltered']==1){
               
                swal({
                    title:"Achhasa Title hai ",
                    text:"Hello Bhai kaise ho ?",
                    type:'success',
                    icon: "success",
                    confirmButtonText:' Ok! ',
                    width: '650px'
                    }).then((result) => {  
                       
                    });

            }    
        },
        error: function (xhr, ajaxOptions, thrownError) {
                    var errorMsg = 'Ajax request failed: ' + xhr.responseText;
                    alert(errorMsg);
            
          }
    });
}

</script>

标签: javascriptphpjsonajax

解决方案


添加dataType: "JSON",到 AJAX 调用中,然后 jQuery 会自动为您将返回的 JSONString 转换data为 javascript 对象

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<script>
funBroadcast();
function funBroadcast()
{
    $.ajax({
        url: "http://localhost:8080/afk/temp.php",
        type: 'get',
        dataType: 'JSON',       // <<-- CODE ADDED HERE
        success: function(data){
            console.log(data);
            alert(data['recordsFiltered']);//undefined value
            if(data['recordsFiltered']==1){
               
                swal({
                    title:"Achhasa Title hai ",
                    text:"Hello Bhai kaise ho ?",
                    type:'success',
                    icon: "success",
                    confirmButtonText:' Ok! ',
                    width: '650px'
                    }).then((result) => {  
                       
                    });

            }    
        },
        error: function (xhr, ajaxOptions, thrownError) {
                    var errorMsg = 'Ajax request failed: ' + xhr.responseText;
                    alert(errorMsg);
            
          }
    });
}

</script>

推荐阅读