猿问

将数组从 php 传递到 ajax 时,位置 0 处的 JSON 中出现意外标记 C

我正在尝试将数组从 php 发送到 json 文件中的 ajax,但是当我提醒 res var 进行测试时,我看到以下错误消息:


未捕获的语法错误:JSON 中的意外标记 C 位于位置 0


我的数组是这样的:


["C", "Dbm", "Bb", "Bb", "F", "Cm", "Eb", "Dbm", "Bb", "Bb", "F", "Cm", "F", "Bb", "Eb", "Bb", "F",…]

当用户单击视图中的按钮时,由 php 函数创建的数组和数组项的数组会有所不同。


Java脚本:


$(".T-chords").on('click',function(event){


    event.preventDefault();

    var This = $(this);

    $.ajax({


        url : data.ajax_url,

        type : 'post',

        dataType: 'json',

        data : {


            action : 'transpose_callback',

            content : data.content,

            target_scale : This.text(),

            base_scale : data.base_scale,

        },


        success:function(response){


            var res = JSON.parse(response);

            alert(res[1]);


        },


        error: function(){


            alert("err");


        }



    })


})


慕容3067478
浏览 177回答 2
2回答

UYOU

您可以通过两种方式修复它,1) 替换 var res = JSON.parse(response); 警报(资源[1]);使用 var res = response; 警报(资源[1]);因为在这里你会得到一个数组,而不是一个 JSON 对象。2)或者你可以在这里传递一个关联数组$transposed_arr = array("c"=>"C", "Dbm"=>"Dbm","Bb" =>"Bb");      json_encode($transposed_arr)关联数组将生成一个 JSON 对象,您可以在该对象上应用 var res = JSON.parse(response);

呼啦一阵风

这要么是因为您正在解析已解析的对象。尝试删除var res = JSON.parse(response);并将其更改为var res = response;
随时随地看视频慕课网APP
我要回答