加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:49:50 所属栏目:百科 来源:网络整理
导读:请求js代码: Register.checkAccountForReturnPd = function (account,callback) { RCommon.showPdReturnError( 'tip_account' , '' ); RCommon.showPdReturnError( 'question_tip' , '' ); RCommon.showPdReturnError( 'answer_tip' , '' ); jQuery( '#answe

请求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”);

问题解决!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读