解决JQuery.ajax.post乱码问题

本文介绍了一种解决通过$.ajax进行POST操作时中文乱码的方法。通过使用encodeURIComponent对中文数据进行编码,确保数据正确传输至服务端并保存至cookie。同时介绍了如何通过两次decodeURIComponent解码从cookie中读取原始中文数据。

问题:昨天在进行项目功能实现时,利用了$.ajax吧数据post给服务,接着保存到cookie中,而数据中是带有中文的

我的post代码:

 comCarId=encodeURIComponent(comCarId);
$.ajax({ type: "POST", url: "/Car/AddCarId", data: { carID: comCarId }, dataType: "json", success: function (data) {} });

  在post之前,我的data参数中的数据comCarId并没有进行编码的转换,post到服务端就出现了乱码

  解决方法:利用javascript中的函数comCarId=encodeURIComponent(comCarId)对comCarId进行编码,然后post给服务端存入cookie

  取值:取cookie值,cookie值取出来的是编码后的数据,所以我们利用decodeURIComponent(cookie)进行解码,但是只用一次解码时确发现cookie的值是encodeURIComponent编码之后的值,并不是想要的中文数据,因此再次利用decodeURIComponent进行解码,也就是所谓的2次解码(decodeURIComponent(decodeURIComponent(cookie)))

从服务端取回来的数据,在客户端展示:

var str = decodeURIComponent(decodeURIComponent(cookie));

  

 

 

  

转载于:https://www.cnblogs.com/QimmyPeng/p/3987659.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值