javascript - json_encode() 中的 json 无效

标签 javascript php jquery ajax json

这是我的 PHP 文件(实际文件更复杂,但我发现即使使用最简单的代码也会失败):

<?php
$salida = array(1,2,3,4,5);
echo json_encode($salida);
?>

这是我得到的回复:

[1,2,3,4,5]

看似有效,其实不然。我的 AJAX 应用程序显示 'Unexpected token'当我将它传递给 jQuery.parseJSON() 函数时。当我将其粘贴到 JSONLint 网页时,返回相同的错误。

我注意到,如果删除第一个字符并再次输入,JSON 就会变得有效。

这引起了我的思考,我使用十六进制编辑器检查了 JSON 字符串,并在文件开头发现了奇怪的字符:

[1,2,3,4,5] 

这很奇怪,因为直到几天前该功能都运行良好,并且文件尚未被修改。

<?php>标签位于文件的开头,编码为 utf-8。

我在 Windows 8.1 上使用 XAMPP 1.8.3。我重新安装了 XAMPP,以防万一出现问题,但是 json_enconde()功能仍然无法正常工作。

有人知道如何解决这个问题吗?

谢谢

最佳答案

您需要保存没有 UTF8 BOM(字节顺序标记)的 PHP 文件(及其包含的所有文件)。如何执行此操作取决于您的编辑器。请注意,使用 UTF8 本身是完全可以的,并且受到鼓励。只是没有 BOM。

关于javascript - json_encode() 中的 json 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091083/

相关文章:

javascript - 提交时禁用多个表单按钮并发送适当的值?

php - 使用 cakephp 从数据库中推荐单词

javascript - 使用 $(this); 获取 div 内的子 img; [点击事件]

javascript - 在小屏幕上隐藏/显示标题,但在大屏幕上保持 Jquery/CSS

javascript - 如何过滤响应数据并使用 Angular 2/4 显示不同的值

javascript - 单行注释会破坏 JavaScript 的执行

php - MySQL 正在删除 html 表/Code Igniter 的最后一行

php - Yii GridView 显示来自两个模型的数据

jquery - 从 json 对象获取键名

javascript - 测试带有函数的 React Components setState 重载