【问题标题】:ERROR Uncaught SyntaxError: Unexpected token <in JSON at position 0ERROR Uncaught SyntaxError: Unexpected token <in JSON at position 0
【发布时间】:2018-12-16 09:56:08
【问题描述】:

我有以下 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);

当我在本地运行时,它运行良好,现在当我进入服务器上的站点时,出现以下错误:

Uncaught SyntaxError: Unexpected token

如何解决?

【问题讨论】:

  • 看起来 ajaxSerie.php 正在使用标记而不是 JSON 进行响应。查看浏览器的 Network 控制台,看看它实际响应的是什么

标签: javascript jquery ajax


【解决方案1】:

您的 Ajax 调用可能会返回 HTML,它以“

根据我的经验,Ajax 调用返回 HTML 表明后端出现错误。如果您使用浏览器的开发者工具,您将能够跟踪您的 Ajax 调用并读取它的响应。

花点时间阅读那个 HTML,因为大多数时候,标签中的错误信息会留下一个面包屑来找到真正的问题。

【讨论】:

  • @Larissasilva 究竟在那个“巨大的html代码”中是什么?
  • @Larissasilva 现在您已经确定这是一个服务器端问题,您应该对其进行调试。正如约翰所说,如果您有 500 内部服务器错误等,这真的很常见。
  • 拥有自doctype、links、meta、script、css、img,拥有html页面的完整格式
  • @Larissasilva,我建议花时间阅读 html。大多数情况下,BODY 中的错误消息提供了一个面包屑。
【解决方案2】:

第一个:$.post(url , {} , callback function(){} , 'json'); 你可以添加'json' 而不是使用JSON.parse()

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

$result = [
"pertence" => $idValor
];

应该是

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

【讨论】:

  • 添加'json' 作为数据类型是一个不错的主意,但它绝对不会解决 OP 的问题。您关于 PHP 数组语法的第二点也不正确,假设是 moderately recent version of PHP(5.4 中引入的短数组语法,现在已经 6 岁了)
  • [] 是当今 PHP 的有效语法数组语法。 php.net/manual/en/language.types.array.php
  • 话虽如此,您可能正在做某事。如果 OP 的远程主机运行 PHP
  • 如果 OP 确实添加了 'json',他们还必须删除 JSON.parse()。您可能应该在回答中指出这一点
  • 感谢@Phil 的解释.. 实际上我没有使用JSON.parse() 之前我总是使用这种方法或ajax 类型的json .. 无论如何再次感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
  • 2022-01-04
  • 1970-01-01
  • 2021-03-02
  • 2019-08-14
  • 2020-10-10
相关资源
最近更新 更多