我有以下内容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');
});
});
});
}
AJAX中的看起来像这样:
$idValor = $_POST['valorInput'];
$result = [
"pertence" => $idValor
];
echo json_encode($result);
当我在本地进行操作时,它运行完美,现在当我进入服务器上的站点时出现以下错误:
未捕获到的SyntaxError:JSON中位置0上的意外令牌<< / p>
如何解决这个问题?
答案 0 :(得分:2)
您的Ajax调用可能正在返回HTML,该HTML以开头的HTML标记“ <”开头。
以我的经验,Ajax调用返回HTML表示后端出现错误。如果使用浏览器的开发人员工具,则可以跟踪Ajax调用并读取其响应。
花时间阅读HTML,因为在大多数情况下,标记中的错误消息会留下面包屑来查找真正的问题。
答案 1 :(得分:0)
第一:$.post(url , {} , callback function(){} , 'json');
可以添加'json'
而不是使用JSON.parse()
2nd:如果您的服务器运行的PHP版本低于5.4
$result = [
"pertence" => $idValor
];
应该是
$result = array(
"pertence" => $idValor
);