Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未捕获的语法错误:意外的令牌C-JQUERY-传递和解码Json_Jquery_Ajax_Json - Fatal编程技术网

未捕获的语法错误:意外的令牌C-JQUERY-传递和解码Json

未捕获的语法错误:意外的令牌C-JQUERY-传递和解码Json,jquery,ajax,json,Jquery,Ajax,Json,我遇到这个错误,告诉我有一个意外的令牌C指向我的Jquery文件。经过大量研究,我认为我之所以会出现这个错误,是因为传回的Json值已经被解码,因此再次解码会导致这个错误 这句话是真的吗?或者背后还有其他原因吗? 这就是我的json数据的样子[{“comments”:“Greta”},{“comments”:“John”}] <a onclick="showUser('.$row['ID'].')" >Show Comments</a> <script> f

我遇到这个错误,告诉我有一个意外的令牌C指向我的Jquery文件。经过大量研究,我认为我之所以会出现这个错误,是因为传回的Json值已经被解码,因此再次解码会导致这个错误

这句话是真的吗?或者背后还有其他原因吗? 这就是我的json数据的样子[{“comments”:“Greta”},{“comments”:“John”}]

<a onclick="showUser('.$row['ID'].')" >Show Comments</a>

<script>
function showUser(str) {
      if (str=="") {
        document.getElementById("txtHint").innerHTML="";
        return;
      } 
      $.ajax({
          type:'post',
          url: 'viewCommentsJson.php',
          data:{q:str},
          success:function(data)
          {
              data = $.parseJSON(data);
              var response;
              $.each(data, function(index, value){
                   response += value+'<br />';
              });
              $('#txtHint').html(response);
          }
      });
}
</script>
显示注释
函数showUser(str){
如果(str==“”){
document.getElementById(“txtHint”).innerHTML=“”;
返回;
} 
$.ajax({
类型:'post',
url:'viewCommentsJson.php',
数据:{q:str},
成功:功能(数据)
{
data=$.parseJSON(数据);
var反应;
$.each(数据、函数(索引、值){
响应+=值+'
'; }); $('#txtHint').html(响应); } }); }
原因是,您正在尝试解析已经是json格式的响应

$.parseJSON
方法应应用于
string
类型。因为您的服务器响应是json,所以您不必再次解析它

像这样更改代码

$.ajax({
    type: 'post',
    url: 'viewCommentsJson.php',
    data: {
        q: str
    },
    success: function (data) {
        var response = "";
        $.each(data, function (index, value) {
            response += value.comments + '<br />';
        });
        $('#txtHint').html(response);
    }
});
$.ajax({
键入:“post”,
url:'viewCommentsJson.php',
数据:{
q:str
},
成功:功能(数据){
var响应=”;
$.each(数据、函数(索引、值){
响应+=value.comments+'
'; }); $('#txtHint').html(响应); } });
这是可能的,因为响应为“连接失败…”,并且当连接被拒绝时,您正试图将数据库输出解析为JSON

这将导致解析C并抛出“意外令牌C”错误


检查检查器中的“网络”选项卡并查找.PHP SQL脚本。至少在chrome inspector中,您可以获得响应,并查看何时获得响应。

Json值已被解码,因此再次解码将导致此错误。是,这是真的请参见jQuery文档中的控制台错误about(参考
dataType
参数):“您期望从服务器返回的数据类型。如果未指定任何类型,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将生成XML,在1.4中JSON将生成JavaScript对象,在1.4中脚本将执行脚本,其他任何内容都将作为字符串返回)。“……那么您是否建议我删除`data=$.parseJSON(data)59没有特定的行。它指向我的
jquery-1.9.0.js:945
您能否成功地提醒该数据。并查看服务器正在发送什么