Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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
Javascript 错误未捕获语法错误:意外标记<;在JSON中的位置0_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 错误未捕获语法错误:意外标记<;在JSON中的位置0

Javascript 错误未捕获语法错误:意外标记<;在JSON中的位置0,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下JS脚本: jQuery(document).ready(function($) { $("#idSelect").change(function(event) { var valor = $(this).val(); //alert(valor); $.post( "ajaxSerie.php", { valorInput: valor }, function( data ) { var retorno =

我有以下JS脚本:

jQuery(document).ready(function($) {
    $("#idSelect").change(function(event) {
        var valor = $(this).val();
        //alert(valor);
        $.post( "ajaxSerie.php", { valorInput: valor }, function( data ) {
            var retorno = JSON.parse(data);
            console.log(retorno);
            $("#pertence").val(retorno['pertence'])// aqui estou atribuindo um input qualquer o valor retornado do php, o input tera o valor de sala206
            $.each(retorno, function() {
                $('<option>').val(retorno['pertence']).text(retorno['pertence']).appendTo('#teste');
            });
        });
    });

}
当我执行本地操作时,它可以完美地工作,现在当我在服务器上转到站点时,出现以下错误:

未捕获的SyntaxError:JSON中位置0处的意外标记<


如何解决这个问题?

您的Ajax调用可能返回以“开头的HTML,您的Ajax调用可能返回以“1st:
$.post”开头的HTML(url,{},回调函数(){},'json')
您可以添加
'json'
而不是使用
json.parse()

第二:如果您的服务器运行的PHP版本早于5.4

$result = [
"pertence" => $idValor
];
应该是

$result = array(
"pertence" => $idValor
);
第一个:
$.post(url,{},回调函数(){},'json')
您可以添加
'json'
而不是使用
json.parse()

第二:如果您的服务器运行的PHP版本早于5.4

$result = [
"pertence" => $idValor
];
应该是

$result = array(
"pertence" => $idValor
);


看起来
ajaxSerie.php
使用标记而不是JSON进行响应。查看浏览器的网络控制台,看看它实际响应的是什么,就像
ajaxSerie.php
响应的是标记而不是JSON。在浏览器的网络控制台中查看它的实际响应with@Larissasilva“巨大的html代码”中到底是什么?@Larissasilva现在您已经确定这是一个服务器端问题,您应该对此进行调试。正如John所说,如果您有500个内部服务器错误,这是非常常见的,因为doctype、links、meta、script、css、img具有html的整个格式page@Larissasilva,我建议您花点时间阅读html。大多数时候,正文中的错误消息提供了一个面包屑。@Larissasilva“巨大的html代码”中到底是什么?@Larissasilva现在您已经确定这是服务器端问题,您应该调试它。正如John所说,如果您有500个内部服务器错误,这是非常常见的,因为doctype、links、meta、script、css、img具有html的整个格式page@Larissasilva,我建议您花点时间阅读html。大多数时候,正文中的错误消息提供了一个breadcrumb。添加
'json'
作为数据类型是一个不错的主意,但它肯定不会解决OP的问题。关于PHP数组语法的第二点也不正确,假设(5.4中引入的短数组语法,现在已经6年了)
[]
是当前PHP的有效语法数组语法。话虽如此,你可能已经了解了一些事情。如果OP的远程主机运行的是PHP<5.4,他们的代码将出错。如果OP添加了
'json'
,他们还必须删除
json.parse()
。你应该在回答中指出这一点谢谢@Phil的解释。。实际上,在我总是使用这个方法或ajax类型的JSON之前,我没有使用
JSON.parse()
。。无论如何,再次感谢:)添加
'json'
作为数据类型是一个不错的主意,但它肯定不会解决OP的问题。关于PHP数组语法的第二点也不正确,假设(5.4中引入的短数组语法,现在已经6年了)
[]
是当前PHP的有效语法数组语法。话虽如此,你可能已经了解了一些事情。如果OP的远程主机运行的是PHP<5.4,他们的代码将出错。如果OP添加了
'json'
,他们还必须删除
json.parse()
。你应该在回答中指出这一点谢谢@Phil的解释。。实际上,在我总是使用这个方法或ajax类型的JSON之前,我没有使用
JSON.parse()
。。无论如何,再次感谢:)