php服务端 如何接受前端使用ajax发送get请求而传递过来的汉字

记录一下自己在这里出现的问题:

我的基本情况:

整个前端和服务端包括服务器默认都采用的是UTF-8编码

前端:我在js文件中使用jQuery提供的$.get()方法进行异步的数据提交,这里的get请求中有汉字

服务端:使用ThinkPhp框架进行服务端的处理,这里他要接受前端发送的请求,要得到get请求中的参数信息如name等;

出错前 前端的代码:

$.get(ajaxMakeCard?uu="+uu+"&giftname="+giftname+"&amount="+amount+"&description="+description+"&validcode=" + validcode, function(data,status){
  if(status=="success"){
    //console.log("data: "+data);
	alert("data: "+data);
    }
});

这里直接利用ajax发送get请求

出错前 服务端的处理代码:

$info = array();
$info['giftname'] = $_GET['giftname'];	
$info['description'] = $_GET['description'];	

 很简单直接使用GET方法获取前端传递的参数信息

问题:除了谷歌浏览器其他的浏览器上服务端那边都无法接受前端传递的汉字(英文没问题)

解决办法:

在前端对url进行编码,服务端进行解码

修改后的前端代码

var geturl = "ajaxMakeCard?uu="+uu+"&giftname="+giftname+"&amount="+amount+"&description="+description+"&validcode=" + validcode;
			geturl=encodeURI(encodeURI(geturl));
			alert("执行ajax前:"+geturl);
			$.get(geturl, function(data,status){
				if(status=="success"){
					//console.log("data: "+data);
					alert("data: "+data);
                        }
});

在发送请求前编码

修改后的服务端接受代码:

        $info = array();
                    
        $info['uu'] = $_GET['uu'];    
        
        $info['giftname'] = urldecode($_GET['giftname']);    
        $info['description'] =urldecode($_GET['description']);    

 

问题解决!希望可以帮到你

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值