我正在尝试将数组从 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);
呼啦一阵风
TA贡献1802条经验 获得超6个赞
这要么是因为您正在解析已解析的对象。尝试删除var res = JSON.parse(response);
并将其更改为var res = response;
- 2 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消