php - Jquery - 未捕获的类型错误 : Cannot use 'in' operator to search for '324' in

标签 php javascript jquery ajax yii

我正在尝试通过 ajax 发送 Get 请求并输出服务器以 html 格式返回的 json 数据。

但是,我收到了这个错误。

Uncaught TypeError: Cannot use 'in' operator to search for '324' in 
[{"id":50,"name":"SEO"},{"id":22,"name":"LPO",}]

这是我通过 ajax 向 php 文件发送 Get 请求的代码。 当我使用 $.each 方法时,它得到了我在上面显示的错误。

parentCat.on('change', function(e){
    parentCatId = $(this).val();

    $.get(
        'index.php?r=admin/post/ajax',
        {"parentCatId":parentCatId},
        function(data){                     
            $.each(data, function(key, value){
                console.log(key + ":" + value)
            })
        }
    )

})

这是我的 PHP 代码,它以 json 格式返回查询结果。

public function actionAjax(){

    $parentCatId=$_GET['parentCatId'];

        $catData = Category::getTargetCategoryData($parentCatId);

        echo CJSON::encode($catData);
        Yii::app()->end();

}

这个php输出的json数据是这样的。

[{"id":50,"name":"SEO"},{"id":22,"name":"LPO",}]

有人知道如何解决这个问题吗?

请帮帮我。 在此先感谢:)

最佳答案

你有一个 JSON 字符串,而不是一个对象。告诉 jQuery 你期待一个 JSON 响应,它会为你解析它。使用 $.getJSON而不是 $.get , 或将 dataType 参数传递给 $.get:

$.get(
    'index.php?r=admin/post/ajax',
    {"parentCatId":parentCatId},
    function(data){                     
        $.each(data, function(key, value){
            console.log(key + ":" + value)
        })
    },
    'json'
);

关于php - Jquery - 未捕获的类型错误 : Cannot use 'in' operator to search for '324' in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18502101/

相关文章:

php - preg_replace 删除除破折号、字母、数字、空格和下划线以外的所有字符

javascript - 将数组保存到漫游设置

javascript - bb10 网络 : make a phone call

javascript - 如何使用 vueJS 在内部数组中显示 JSON 数据?

javascript - 为什么我的 3 个 Highcharts 饼图/图表中只显示了 2 个

php - 如何从 php/html 执行 shell 脚本?

php - 在php中用空格显示数据库中的数据

php - 如何在提交表单后自动选择列表菜单中的选中项?

javascript - ASP.Net MVC Razor 引擎 : Make a javascript function aware if the user has input invalid data

javascript - 如何在弹出窗口中显示移动预览