Ajax跨域查询完美解决通过$.getJSON()实现

杰出※星空

杰出※星空

2016-02-19 09:33

下面,图老师小编带您去了解一下Ajax跨域查询完美解决通过$.getJSON()实现,生活就是不断的发现新事物,get新技能~
原因:浏览器安全上做了限制,禁止ajax跨域获得数据。
解决方法:通过jquery提供的$.getJSON()可以跨域获得JSON格式的数据。优点:兼容性强。

Java后台代码:
代码如下:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String callback =req.getParameter("callback");//jquery生成的自定义函数名
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
//返回json格式字符串,注意向前台输出的格式必须为 callback(json格式的字符串);
//callback是jquery生成的自定义函数名,返回这种格式,前台jquery代码会自动替换
//回调函数为此callback函数,从而达到跨域的效果,网上还有其他的跨域方案如:AJAJ
//原理应该也是和此方法一样。缺点是:返回数据量不宜过大,安全性差,建议重要数据不
//要通过这种形式传递。
out.print(callback+"({name:'111',sex:'222'});");
out.flush();
out.close();
}

Js前台调用代码:
代码如下:

$(function(){
//需要传的参数,可以不传。
var data= {param1:"param1",param2:"param2"};
//注意url一定要以callback=?的形式拼接,callback参数名可以自定义,
//但后台必须也要同步获取的参数名
var url = 'http://192.168.1.216:8080/DSFA/getUser?callback=?';
$.getJSON(url,data,function(backdata){
//其实后台返回的函数已经替换为此函数,所以backdata
//就是你从后台传过来的json对象。
alert(backdata);
});
})

如果有不明白的地方,请留言....
展开更多 50%)
分享

猜你喜欢

Ajax跨域查询完美解决通过$.getJSON()实现

Web开发
Ajax跨域查询完美解决通过$.getJSON()实现

成功实现ajax xmlhttp跨域访问

Web开发
成功实现ajax xmlhttp跨域访问

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

成功实现ajax,xmlhttp跨域访问

Web开发
成功实现ajax,xmlhttp跨域访问

解决ajax跨域问题的实例

Web开发
解决ajax跨域问题的实例

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

解决AJAX 跨域访问完整解决方案

Web开发
解决AJAX 跨域访问完整解决方案

ajax跨域访问的解决方案

Web开发
ajax跨域访问的解决方案

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Android Thread 介绍与实例

Android Thread 介绍与实例

javascript之卸载鼠标事件的代码

javascript之卸载鼠标事件的代码
下拉加载更多内容 ↓