这些是我的调用参数
$.post('checklogin_is.php', data, handleAjaxResponse, 'text');
回调函数是:
function handleAjaxResponse(data) {
if($.trim(data)=='yes')
{
//some more code
}
else
{
if($.trim(data)=='no')
{
//some code
}
else
{
//some code
}
}
}
正如你所看到的,checklogin_is.php应该回应“是”或“否”。但是,不是那样,我在开头有一个额外的空格,因此我得到“是”或“否”,因此我无法通过if语句获得数据。
我正在使用$.trim(data)
作为解决方法,但我想知道为什么我会获得额外的空白区域以及是否有其他方法可以解决此问题。提前致谢
php代码:
<?php session_start();
require_once('D:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\is-c.php');
$un = htmlspecialchars($_POST['usnm'],ENT_QUOTES);
$unp = $_POST['usnmp'];
$query_lg = "SELECT * FROM incm_s WHERE s_un='".$un."'";
$user_row = $isdb->get_row( $query_lg, ARRAY_A);
if($user_row['s_id'] > 0)
{
if(strcmp($user_row['s_pd'],$unp)==0)
{
$_SESSION['un_is']=$user_row['s_un'];
$_SESSION['utype_is']=$user_row['s_type'];
echo 'yes';
}
else
echo 'no';
}
else
echo 'no';
?>
答案 0 :(得分:1)
确保<?php session_start();
之前文件中没有空格;这不仅会被回应,而且还会break your session。
要尝试的另一件事是检查是否有任何包含的文件(例如“is-c.php”)在任何PHP标记之外都有空格。请注意,您可以在文件末尾留下任何结束的PHP标记,以确保没有回显换行符。