Jquery mobile从.php文件获取json在本地工作但不在服务器上工作

时间:2014-04-14 13:54:22

标签: php jquery json jquery-mobile getjson

我正在开发一个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文件中,我可以使用以下命令摆脱此错误: 标题(&#39; Content-Type:application / json; charset = US-utf-8&#39;);

即使我的.php中没有错误,这两个文件都无法正常工作。 (我的数据库是utf8_general_ci)

2 个答案:

答案 0 :(得分:0)

你可以尝试一些事情:

  • hader('Content-Type:application / json; charset = UTF-8',true);
  • 完全删除Content-Type
  • 连接到db之后调用mysql_query(“SET NAMES'utf8'”)

答案 1 :(得分:-1)

PHP白屏或没有数据是脚本错误的标志。您的ajax调用是正确的,它是可记录的启用错误报告开发环境,因此您需要检查错误日志或启用error_reporting以获取异常。