今天遇到一个需求:用ajax跨域提交数据。我使用jquery进行提交。有2种提交的方法,分别是$.post()和$.getJson()。但是post方法不支持跨域(post方法不会产生乱码问题)。那只能使用getJson方法了。客户端代码如下:
var url = 'http://localhost/ajax/postData.action'; var getParam = { userid:stat_userid, title:document.title, t:stime }; $.getJSON(url,getParam);
服务端代码省略。
然而,使用getJson方法提交数据,却得到了乱码。
怎么样解决这个问题呢?我在客户端和服务端都进行了改动,解决了乱码问题。
客户端代码修改如下:
var url = 'http://localhost/ajax/postData.action'; var getParam = { userid:stat_userid, title:encodeURI(document.title,"utf-8"), t:stime }; $.getJSON(url,getParam);
服务端代码修改如下:
String title = URLDecoder.decode(title,"utf-8");
解决了乱码问题。