IE9下ajax请求thinkphp返回数据异常

编程入门 行业动态 更新时间:2024-10-07 16:25:21

IE9下ajax请求thinkphp返回数据<a href=https://www.elefans.com/category/jswz/34/1771210.html style=异常"/>

IE9下ajax请求thinkphp返回数据异常

请求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(){
type= _REQUEST[‘type’];
value= _REQUEST[‘value’];
returnData=array(); status = array(
array(‘status’=>0, ‘message’=>”),
array(‘status’=>1, ‘message’=>’账号不存在!’)
);
user= this->cyService->existUser( type, value);
if(user == ‘1’){  
   //status[1]['val'] = value; returnData = json_decode( this−>epspEzSvc−>getPasswordSafetyByLoginCode( value),true);
if ( returnData[‘code′]==‘0′)$status[0][′val′]=$returnData[‘data′];else$status[0][‘message′]=‘您没有设置密保问题,请在设置−>密保设置中设置!′;echojsonencode( status[0]);
}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”);

问题解决!

更多推荐

IE9下ajax请求thinkphp返回数据异常

本文发布于:2024-02-19 17:16:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1764935.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:异常   数据   ajax   thinkphp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!