我正在处理一个Jquery移动项目,希望加载一个json。json来自一个.php文件。问题是它无法加载。
我的.php文件如下所示。
<?php
$query=mysql_query("SELECT * FROM `data`");
while($data=mysql_fetch_assoc($query))
$output['result'] []=$data;
header('Content-Type: application/json', true);
echo json_encode($output);
?>
我在jquery中尝试了两种不同的方法:
$.ajax({
url: "http://www.example.com/jsonfile.php",
dataType : "json"
}).success(function(data){
$.getJSON('http://www.example.com/jsonfile.php', function(data) {
这里有一个小回顾。当使用本地.json文件时,一切都正常。但当我在服务器上调用同一个文件时,它不会。我得到的错误是:
未声明纯文本文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将呈现乱码文本。文件的字符编码需要在传输协议中声明,或者文件需要使用字节顺序标记作为编码签名
在我的.php文件中,我可以使用以下方法消除此错误:header('Content-Type:application/json;charset=US-utf-8');
即使在我的.php中没有错误,这两个文件也无法工作。(我的数据库是utf8_general_ci)
您可以尝试的几件事:
- hader('Content-Type:application/json;charset=UTF-8',true)
- 完全删除内容类型
- 连接到数据库后调用mysql_query("SET NAMES'utf8'")
PHP出现白色屏幕或没有数据是脚本错误的标志。您的ajax调用是正确的,建议在开发环境中启用错误报告,因此您需要检查错误日志或启用error_reporting来获取异常。