2013-02-20 132 views
1

我有jQuery 1.9.1和json响应的问题。 我的HTML文件是用于测试非常简单(使用jQuery 1.8.3工作):jQuery 1.9.1 ajax()json响应:PHP与包​​括

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8" /> 
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 

    <script type="text/javascript"> 

     $.ajax({ 
     url: "php/news_test.php", 
     dataType: "json", 
     success: function(json){ 
      $("#news-box").html(json.news.name); 
     } 
     }); 

    </script> 
    </head> 
    <body> 
    <div id="news-box"></div> 
    </body> 
</html> 

这工作得很好用下面的PHP-文件:

header('Content-type: application/json'); 
include('core/database.php'); 
/* 
$db = new Database(); 
... 
... 
... 
*/ 
echo json_encode(array("news" => array("name" => "Test"))); 

但是,当我改变的jQuery 1.9 .1我没有得到回应。 我要评论第二条线include('core/database.php');之后,我得到了jQuery 1.9.1的响应。 database.php只有一行用于测试$db_host = 'localhost';

我不能使用包含jQuery 1.9.1吗? 我的代码中有错误吗? 或者它是一个错误?

+1

也许你的database.php中有一些空白的echo'd? – ikkez 2013-02-20 18:02:17

+0

这是我的database.php:<?php $ db_host ='localhost'; ?>没有空格之前和之后 2013-02-20 18:11:59

+0

添加一个错误回调并记录参数(其中有三个,第二个和第三个是我们正在寻找的。) – 2013-02-20 18:50:46

回答

0

当我简单地将jQuery升级到1.9.1(我认为从1.7.2开始)时,我遇到了同样的问题。在不更改任何其他代码或服务器的情况下,我开始出现此错误。我解决它的方法是从AJAX调用删除线

dataType: "json", 

0

我有什么似乎是相同的问题,这是因为该文件必须已保存在Dreamweaver中选中“包含Unicoi签名(BOM)”。您必须在没有该选项的情况下重新保存问题文件(将复选框留空)。有关更多信息,请参阅this article