jQuery 1.9.1 ajax()json响应:PHP与包括
问题描述:
我有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吗? 我的代码中有错误吗? 或者它是一个错误?
答
当我简单地将jQuery升级到1.9.1(我认为从1.7.2开始)时,我遇到了同样的问题。在不更改任何其他代码或服务器的情况下,我开始出现此错误。我解决它的方法是从AJAX调用删除线
dataType: "json",
。
答
我有什么似乎是相同的问题,这是因为该文件必须已保存在Dreamweaver中选中“包含Unicoi签名(BOM)”。您必须在没有该选项的情况下重新保存问题文件(将复选框留空)。有关更多信息,请参阅this article。
也许你的database.php中有一些空白的echo'd? – ikkez 2013-02-20 18:02:17
这是我的database.php:没有空格之前和之后 and ?> – 2013-02-20 18:11:59
添加一个错误回调并记录参数(其中有三个,第二个和第三个是我们正在寻找的。) – 2013-02-20 18:50:46