1、跨域ajax调用,使用jQuery的getJSON,带上callback=?
如:
客户端代码:
1 var url = "http://www.xxxxxx.com/ajax/add.do?callback=?";
2 var params={"content":"xxx"};
3 $.getJSON(url, params, function(data){
4 if(data.success) {
5 alert("成功~");
6 }
7 else {
8 alert(data.msg);
9 }
10 });
服务端代码:
1 public String add(String callback, String content){
2 String json = buildJson
3 return callback + "(" + json + ")";
4 } 2、为防止外站恶意调用,增加权限认证过滤器,对未授权跨域调用的域名就行限制
过滤/ajax/**的所有连接,使用request.getHeader("REFERER");获取来源地址,并判断其域名是否已授权跨域访问,and so on..
3、针对ie浏览器的隐私设置,跨域写cookie无法实现,需要在写cookie时增加
response.setHeader("P3P","CP=CAO PSA OUR");
(当然也可以修改ie的隐私策略,但是我们不可能傻傻的去要求用户也这样做,呵呵)
以上是我在项目中遇到的问题,记录于此,有缘人得之,少走弯路