为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕容3067478 2021-09-18 21:23:56
我正在尝试将数组从 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");        }    })})
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

您可以通过两种方式修复它,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);


查看完整回答
反对 回复 2021-09-18
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

这要么是因为您正在解析已解析的对象。尝试删除var res = JSON.parse(response);并将其更改为var res = response;


查看完整回答
反对 回复 2021-09-18
  • 2 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信