java jquery jsonp 跨域_jquery JSONP解决跨域

1.模拟跨域

$(function(){

// 同域请求

/*

$.get("${pageContext.request.contextPath}/demo5.action", function(data){

alert(data);

});

*/

// 跨域请求 当前域名 localhost

// $.get 无法跨域

/*

$.get("http://www.test.cn:8080/jquery_ajax_day2/demo5.action", function(data){

alert(data);

});

*/

// 使用$.getJSON 实现跨域

$.getJSON("http://www.test.cn:8080/jquery_ajax_day2/demo5.action","callback=?", function(data){

alert(data.name);

});

});

2.getJson解决跨域

// 跨域请求问题

public class Demo5Action extends ActionSupport {

// 回调函数名

private String callback;

public void setCallback(String callback) {

this.callback = callback;

}

@Override

public String execute() throws Exception {

ServletActionContext.getResponse().setContentType("text/javascript;charset=utf-8");

ServletActionContext.getResponse().getWriter().print(callback + "({\"name\":\"xxx\"})");

return NONE;

}

}

3.跨域原理

问题:localhost使用jsp,而该jsp访问test域名,服务器处理的数据会返回到localhost,而非test。造成跨域问题

原理:jsonp底层桶过javascript可以读取“任何”地址的js脚本片段

1:在jsp使用getJSON发送请求,拼接callback参数给服务器

2:服务器拼接getJSON的callback函数的参数,返回给jsp

3:jsp执行返回的js脚本片段(回调)

4:相当于ajax异步处理了这次请求

差不过这意思,如有不对请谅解。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2015-08-07 11:42

浏览 504

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值