【发布时间】:2012-04-16 15:04:12
【问题描述】:
我正在尝试使用数组中的 json 将多个变量从 php 文件发送回 ajax。 php 文件中的代码可以完美运行,并且可以正常使用我的数据库。但是,一旦我在 ajax 中添加 dataType: "json",php 文件中就没有任何反应了。我用谷歌搜索了一下,有人提到这可能是浏览器问题,但到目前为止,它在 firefox、chrome 或 IE 中都不起作用。我正在使用最新版本的 jQuery。
这就是php内部发生的事情:
<?php
//Create variables and update database
echo json_encode(array("id" => "$realid", "un" => "$username", "date" => "$date"));
?>
这是 ajax 代码:
.ajax(
{
url: 'UpdateComments.php',
type: 'POST',
dataType: "json",
data:
{
type: "add",
comment: $("#comment").val(),
id: videoID
},
success: function (data)
{
//Get the data variables from json and display them on page
}
});
我对此一无所知,任何建议将不胜感激!
【问题讨论】:
-
检查 firebug / net 面板中的 ajax 响应并查看来自您的服务器的内容。
-
一个 contentType HTTP 标头可能会有所帮助
-
我怀疑返回的不是严格的 JSON - 检查 PHP 之前或之后的空格,或文件中不应该存在的任何其他内容(提示:在 json_encode 之后使用'die' )。当你没有在 JQuery 中指定 dataType 时,成功 = 得到响应。当你这样做时,成功 = 得到一个 VALID 响应......另外检查你的 PHP 版本,我似乎记得 json_encode 在早期版本中被窃听了。