我正在使用一个使用AJAX自动刷新的聊天系统。首先我使用jQuery $ .post函数,但由于我想从我的PHP脚本返回JSON数据,我想使用$ .ajax函数。我的脚本使用$ .post函数运行良好,但我无法返回JSON。这是相关代码: 使用Javascript:
$.ajax({
url: "pages/loadmessage.php",
type: "POST",
data: {"c": getUrlParameter("c"), "t": messagetime},
dataType: "json",
success: function(pData){
console.log(pData);
},
error: function(xhr, status, error) {
alert(error + status);
}
});
PHP代码:
<?php
require_once("../init.php");
header('Content-Type: application/json');
if (Input::exists() && Input::get("c") && Input::get("t")) {
$chat = new Chat($user->data()->ID, Input::get("c"));
$messages = $chat->getNewMessages(Input::get("t"), $user->data()->ID);
if ($messages) {
$result = array(
'topic' => $chat->getTopic(),
'messages' => array()
);
foreach($messages as $m) {
array_push($result['messages'], array('source' => 'mine', 'Text' => $m->Text));
}
echo json_encode("string!!!");
}
} else {
echo json_encode("string" . Input::get("c") . Input::get("t") . Input::exists());
}
?>
我已经尝试将AJAX调用的contentType设置为“application / json”,并使用JSON.stringify将数据转换为JSON,但是没有输入数据到达PHP脚本。如果只将一个参数(data:{“c”:getUrlParameter(“c”)})发送到PHP脚本,代码就可以运行... 我已经搜索过StackOverflow,但我找不到解决方案......
由于
答案 0 :(得分:1)
JSON示例:
的index.html
<script type="text/javascript">
$.ajax({
url: "out.php",
type: "POST",
data: {"param1": "test 1", "param2": "test2"},
dataType: "json",
success: function(data){
alert("param1:"+data.param1+" | param2:"+data.param2);
},
error: function(xhr, status, error) {
alert(error + status);
}
});
</script>
out.php
<?php
if(isset($_POST["param1"])){ $param1 = $_POST["param1"];}
if(isset($_POST["param2"])){ $param2 = $_POST["param2"];}
$out = array("param1"=>$param1,"param2"=>$param2);
echo(json_encode($out));
?>