php 两次encodeURI,解决浏览器跳转请求页乱码报错找不到页面的bug

Not Found

The requested URL /index.php/XXX/mid/97329240798095910/bname/3000T/D/sname/水泥粉磨/uname/1#水泥磨/oname/前滑履油站1.html was not found on this server.

解决思路:

get 提交 参数中 含有中文,  如果是PHP,那前端需要两次 encodeURI,因为一次encodeURI还有一些字符不会被编码

 

 1  onclick="showRecord(this)" href="{:U('OilAnalysis/monitorRecord',array('mid'=>$vo['oid'],'bname'=>$vo['bname'],'sname'=>$vo['sname'],'uname'=>$vo['uname'],'oname'=>$vo['oname']))}" 
 2 var showRecord=function(e){
 3     var hf=$(e).attr('href');
 4     var url=encodeURI(encodeURI(hf));
 5     // url=hf;
 6     location.href=url;
 7 }
 8 
 9 后台php
10 $data['mid']=urldecode(urldecode(I('mid')));
11 $data['bname']=urldecode(urldecode(I('bname')));

 

 

posted @ 2018-04-26 09:17  歲夢灬沉浮  阅读(254)  评论(0编辑  收藏  举报