PHP页面突然重定向
我的PHP页面上有以下代码,它从客户端获取消息并将其存储到服务器上的日志文件中。该函数由jqueryajax函数调用(如下所示)。AJAX请求正确地发送数据,PHP代码工作正常。但是,当AJAX请求的响应被发回时,页面突然重定向到index.php(我的主页): PHP代码PHP页面突然重定向,php,jquery,ajax,zend-server,Php,Jquery,Ajax,Zend Server,我的PHP页面上有以下代码,它从客户端获取消息并将其存储到服务器上的日志文件中。该函数由jqueryajax函数调用(如下所示)。AJAX请求正确地发送数据,PHP代码工作正常。但是,当AJAX请求的响应被发回时,页面突然重定向到index.php(我的主页): PHP代码 function store_chat_msg_function() { //Check if session is active if(isset($_SESSION['NAME'])) {
function store_chat_msg_function()
{
//Check if session is active
if(isset($_SESSION['NAME']))
{
$data = $_POST;
$text = $data["message"];
$filepath = $data["filepath"];
$fp = fopen($filepath, 'a');
fwrite($fp, "<div class='msgln'>(".date("g:i A").") <b>".$_SESSION['NAME']."</b>: ".stripslashes(htmlspecialchars($text))."<br></div>");
fclose($fp);
//Push data array to be sent into array
$json = array();
$bus = array(
'message' => "1"
);
array_push($json, $bus);
//Encode to JSON format
$jsonstring = json_encode($json);
//Specify type of data being sent
header("content-type:application/json"); //<-----(error:line 179)
//Finally send the data
echo $jsonstring;
}
else
{
}
}
我删除了标题(“内容类型:application/json”);和数据类型:“json”,发现数据被我调试的ZEND服务器发送的错误数据弄乱了。错误是:
“警告:会话_start():无法发送会话缓存 限制器-标题已在C:\Program文件中发送 (x86)\Zend\Apache2\htdocs\ChatServer\post.php第2行
警告:无法修改标题信息-标题 已在C:\程序文件中发送 (x86)\Zend\Apache2\htdocs\ChatServer\post.php联机 179
[{“消息”:“1”}]
因此,我明白我可能是因为ZEND debugger错误而弄乱了标题,该错误干扰了我的JSON数据(见错误末尾的附件)?给出了什么?感谢您的时间和耐心。您无法修改标题,因此请将代码移到页面顶部:
header("content-type:application/json");
Top表示已处理页面的顶部,而不是函数的顶部
如果由于某种原因无法将
标题(“内容类型:application/json”)
移动到页面顶部,则将添加ob_start();
作为脚本的第一行。在向客户端发送任何内容(包括标题)之前,需要调用session_start()。在发送标题时,它们必须是您在实际发送任何内容之前发送的下一个内容。
header("content-type:application/json");