以下是我要做的事:
我使用Ajax调用从数据库中选择消息,响应PHP中的内容,并尝试在Ajax成功时获得回显的html。但不起作用。这是密码。
JQUERY:
function SelectMessages()
{
console.log("Selecting messages");
console.log("Talk = " + talk);
$.ajax({
url: "select_messages.php",
type: "GET",
data: "talk=" + talk,
success: function (html) {
alert(html);
console.log("In success");
$("#message_box").prepend(html)
},
error: function (html) {
alert(html);
console.log("In error");
}
});//ajax()
}//SelectMessages()PHP:
<?php
//SELECTING MESSAGES
require 'dbconnect.php';
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
if ($_GET['talk'] != "") {
$request = $bdd->prepare('SELECT AUTHOR,CONTENT FROM MESSAGE WHERE TALK = :talk');
$request->execute(array("talk"=>$_GET['talk']));
while ($data = $request->fetch(PDO::FETCH_ASSOC)) {
echo' <p> '.$data['CONTENT'].'</p>';
}
}
?> 使用这段代码,我得到控制台上显示的“错误”,警报中的代码是"object Object“。但是,我的查询在浏览器中的状态是"OK“,并且在网络窗口中的回显结果是预期的结果,所有的消息值都是正确的。
我只是不明白为什么我能克服这个错误而不是成功。
请不要将其标记为重复,因为我已经检查并测试了Ajax/PHP解决方案,并且没有得到任何结果。
发布于 2016-06-29 07:04:39
在php文件中,设置了内容类型标头,如下所示
header('Content-type: application/json'); 但通常以纯文本/html的形式响应。要么你必须用json发送回复。
echo json_encode($data['CONTENT']);或将内容类型标头移除为json。
https://stackoverflow.com/questions/38092353
复制相似问题