jquery实现跨域访问

最近做了个项目,外网访问内容放在iis里面(都是静态页面),内网访问内容放在tomcat里面(项目第一期和第二期的厂家不一样);

客户提出这么个需求:在外网首页加上一个用户访问量,本来也没什么,一般都很好实现,但是在这里就涉及到了跨域访问,之前也没弄类似的东西,后来搞了好半天才实现,在这里备注一下。

首先,在外网首页写上这么一段ajax远程访问代码:

// 更新访问统计量
function flushVisitCount(){
$.ajax({
url:"http://XX.XXX.XX:8080/XXX/home/XXX!visitCount.action",
type: "GET", // 跨域不能用post方式
async:true,
dataType:"jsonp", // 数据传送方式
jsonp:"jsonpcallback",// 为嘛一定要有这个?
success: function(data) {
//alert(data.count);
$("#visitCount").text(data.count);
}

});
}



其次,在后台代码中实现这个方法:

protected void visitCount() {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType( "application/json;charset=UTF8" );
String jsoncallback = getRequest().getQueryString();// 得到的数据格式如下:jsoncallback =jsonp123456789
jsoncallback = jsoncallback.substring(jsoncallback.indexOf("=")+1);// 我们只要“jsonp123456789”

try {
// 格式很重要:返回的格式为 jsonp123456789({"count":1211})
response.getWriter().write(jsoncallback +  "({\"count\":"+object+"})");
response.getWriter().flush();
} catch (IOException e) {
e.printStackTrace();
}

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值