Javascript 错误未捕获语法错误:意外标记<;在JSON中的位置0
我有以下JS脚本: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 =
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()
。。无论如何,再次感谢:)