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


Jquery mobile get json from .php file workes locally but not on server

我正在处理一个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来获取异常。