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

2016-02-19 09:33 9 1 收藏

下面,图老师小编带您去了解一下Ajax跨域查询完美解决通过$.getJSON()实现,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Web开发 】

原因:浏览器安全上做了限制,禁止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);
});
})

如果有不明白的地方,请留言....

来源:http://www.tulaoshi.com/n/20160219/1591233.html

延伸阅读
标签: Web开发
网页制作Webjx文章简介:要解决ajax跨域问题,网上给出的方法有二. 要解决ajax跨域问题,网上给出的方法有二: 1是构建服务器端的代理。简而言之,就是ajax中调用的实质还是本机的url,而服务器端替js去取回远端地址。 2.利用script标记,生成一个标签。在js加载完成后,再执行后续操作。 就是将原来新建xmlHTT...
标签: Web开发
突然感觉就是这里的问题,研究一下,搞定后其实觉得挺容易的,只是自己知识还是有些欠缺,解决方法如下: 阻塞的AJAX请求 我们先来证实一下请求的阻塞情况吧。我们使用如下的代码:  连续发起三个请求  代码如下: function simpleRequest()  {     var request = new&nb...
标签: Web开发
现在方法有下面这几种: Application Proxies : 这种必须通过后台脚本,比如PHP等,实质就是用Ajax读触发本地PHP,然后用PHP读外部文件,并返回给Ajax显示 Script Tag Hack, or On-Demand JavaScript : 一样,要通过后台脚本 Apache Proxy : 这种方法是在Apache服务器中配置 apache's mod_rewrite or mod_proxy : 和上面一样,通过...
标签: Web开发
由于查询返回的数据量很大,超过10w条数据,因此需要对页面查询功能进行优化。放弃原有程序中使用DataGrid的做法,自己编写分页显示模块。     首先在页面上添加几个DIV:         div id="div_trackpoint" style=" border:solid 1px gray; height:230px; width:99%; overflow-y...
标签: Web开发
代码如下: /**//* 异步请求类 作者:吾非无心 创建时间:2009.2 --------------------------------------------------------------------------------------------------------------------------------- 修改记录: 2009.4.27——添加 URL 检测功能,如果是“http://xxxx.xxx.xx.xx/..”这样的格式,使用系统提供的“/getUrl.aspx...

经验教程

961

收藏

33
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部