首页 >后端开发 >php教程 >关于json_encode()困惑

关于json_encode()困惑

WBOY
WBOY原创
2016-06-23 13:43:48947浏览

在控制器里我是这样写的

然后我在一个文本里输出了Json格式是这样的;

可是接收端老提示系统错误,百度了下说是编码不对,可我接收端开头已经写了

并且发送端控制器里也指定了UFT-8编码。
现在接收端就是接受不了数据说是系统错误。。

我用window.alert("ok");能成功
证明数据返回来了,可是错误处在VAR T这里老提示系统错误。。
请问怎么解决啊?
能否提供下代码?


回复讨论(解决方案)

header("Content-type: application/json")
试试

header("Content-type: application/json")
试试


不行啊在接收页面加入这句话把整个页面给我返回过来了。。关键的是数据还是没有获取到

提示的系统错误是错误: 系统错误: -1072896658。
这该怎么办啊

如果要返回json数据,你必须返回‘标准’的json数据, 这里说的标准不只是对于你json数据是标准的,而是在你的返回值中不能包含其他的非法项!
出现这种错误有可能是你在返回json数据之前或之后已经有了其他输出, 比如文件BOM头,我前几天就遇到了这种情况,我的php文件编码成UTF-8但是移植到linux下文件开头多了一个这个字符

-<?php................

就是那个小 -让我纠结了好久,最后把文件前面的 -全部删掉就好了!
也有可能你的其他部分的代码有输出 比如一个空格或者其它的什么东西!

4楼的我不明白我查看了我要输出的JSON数据,格式没问题可现在是我这边接收不到值
 var t = myxml.responseText ;
这句话就是老出错,表示就是接受不到

Ajax 系统错误: -1072896658

如果XMLHttpRequest对象请求的文档未指定正确的utf-8编码,调用responseText方法时就会出现这个错误
浏览器系统错误:-1072896658(Explorer system error: -1072896658)

换个浏览器试试呢

虽然你在代码中加上了charset=utf8
但是你的PHP文件的实际编码是什么格式呢?

然后我在一个文本里输出了Json格式是没问题的, 中文使用了utf8编码。在前端javascript代码中增加类似下面的代码:

        data = eval('(' + data + ')');  // 假设收到的内容保存在data中。 

不行的话,你把所有牵涉的文件 
*.php的都加上 header("Content-Type: text/html;charset=utf-8");
包括html文件中,嵌入javascript的地方加上charset="utf-8"    <script></script>

你页面编码是否utf8?

把你那个Ajax对象就是myxml里面代码贴出来看看

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn