今天遇到一个需求:用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");
解决了乱码问题。