请求js代码:
Register.checkAccountForReturnPd = function(account,callback){
RCommon.showPdReturnError('tip_account','');
RCommon.showPdReturnError('question_tip','');
RCommon.showPdReturnError('answer_tip','');
jQuery('#answer').val('');
jQuery('#questionList').empty();
account = jQuery.trim(jQuery('#'+account).val());
if(account == '' || account == '英文、数字和下划线组合!'){
RCommon.showPdReturnError('tip_account','用户名不能为空!');
return false;
}
//var check = Register.checkAccount(account);
if(account != '' ){
jQuery.ajax({
url : 'index.PHP?app=' + APP_NAME + '&mod=ForgetPassword&act=checkAcount',type : 'post',async : false,data : {type : 'login_name',value : account},success : function(result){
alert(typeof(result));
result = eval('(' + jQuery.trim(result) + ')');
if(result.status == '0'){
RCommon.showPass('tip_account','');
var returnData = result.val;
callback && callback(returnData);
}else{
jQuery('#questionList').attr("disabled","disabled");
jQuery('#answer').attr("readonly",true);
RCommon.showPdReturnError('tip_account',result.message);
}
}
});
}
};
后端代码:
public function checkAcount(){
array(‘status’=>0,‘message’=>”),
array(‘status’=>1,‘message’=>’账号不存在!’)
);
if(@H_761_301@user==‘1’){
//status[1]['val'] =
if (
}else{
echo json_encode( $status[1]);
}
}
请求之后浏览器返回header:
js获取返回result结果:
在谷歌浏览器数据返回正常,但是IE9下数据获取为undefined,
查阅资料后解释为IE9以及以下版本对于json数据的解析很敏感,必须是utf-8编码的数据。
于是查看PHP文件编码格式,发现为utf-8,但是返回数据确出现3种编码,这点没有最终没有弄明白为什么IE9下头信息会返回3种编码,而谷歌下却只返回utf-8.
最终在ajax后端调用加上:
//在IE9下,ajax调用后数据返回Content-type 为uft-8,gb2312,gbk,导致前端JS获取返回数据为undifined.
header(“Content-type: text/html; charset=utf-8”);
问题解决!