欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于json_encode()困惑

程序员文章站 2022-05-04 08:33:51
...
在控制器里我是这样写的

然后我在一个文本里输出了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下文件开头多了一个这个字符

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

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"

你页面编码是否utf8?

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