【问题标题】:Uncaught Syntax Error: Unexpected token < on line 1未捕获的语法错误:第 1 行的意外令牌 <
【发布时间】:2023-03-05 05:07:02
【问题描述】:

我有一个文本文件,其中的详细信息按以下格式存储:

Hayden:Australia:200:7800:45
Lara:West Indies:204:10800:47
Gilchrist:Australia:100:12800:45

我的php代码是这样的

<?php
    $fields = array("name","country","matches","runs","centuries");
    $file = fopen("players.txt", "r");
    $count = 0;
    $finalArr = array();
    while($players=fgets($file))
    {
        $players = trim($players);
        $temparr = array();
        $arr = explode(":",$players);
        //echo $arr;
        for($i=0; $i<count($arr); $i++)
        {   
            $temparr[$fields[$i]] = $arr[i];
        }
        $finalArr[$count] = $temparr;
        $count++;
    }
    fclose($file);
    $return = json_encode($finalArr);
    echo $return;
?>

当我尝试使用 JSON.parse 访问它时,我收到此错误:Uncaught SyntaxError: Unexpected token &lt;

这是我的 HTML 端代码:

if(xhr.readyState==4 && xhr.status==200)
            {
                var players = JSON.parse(xhr.responseText);
                alert(players);
            }

我哪里出错了?

【问题讨论】:

  • 您是否使用 JSONLint 或其他服务验证过您的 JSON?
  • 在回显 json 编码之前可能会输出一些东西
  • 查看浏览器开发人员外观的“网络”选项卡。你得到的输出不是你所期望的。
  • 脚本是否有.php 扩展名?听起来服务器没有运行脚本,而只是将其原始返回。
  • 如果您直接访问 ajax URL,请检查浏览器控制台中的 Network 选项卡,或者只是 console.log(xhr.responseText),响应文本是什么样的?

标签: javascript php html json web


【解决方案1】:

由于缺少 $ in,您的代码在打印 JSON 输出之前会产生大量警告

$temparr[$fields[$i]] = $arr[i];

在哪里

$arr[i] 

应该是

$arr[$i]

【讨论】:

  • 嗯,对,这不会产生一个流浪的&lt; ...但这是一个你需要解决的问题...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 2011-04-07
  • 2014-05-09
  • 2014-11-24
  • 2012-09-07
  • 2015-03-21
相关资源
最近更新 更多