今天遇到一个需求:用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");