主页 > 知识库 > Ajax跨域查询完美解决通过$.getJSON()实现

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

热门标签:科大讯飞语音识别系统 团购网站 阿里云 服务器配置 Linux服务器 Mysql连接数设置 银行业务 电子围栏
原因:浏览器安全上做了限制,禁止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);
});
})

如果有不明白的地方,请留言....
您可能感兴趣的文章:
  • jquery的ajax和getJson跨域获取json数据的实现方法
  • 跨域请求之jQuery的ajax jsonp的使用解惑
  • AJAX跨域请求json数据的实现方法
  • jquery ajax跨域解决方法(json方式)
  • jquery ajax jsonp跨域调用实例代码
  • AJAX javascript的跨域访问执行
  • js跨域和ajax 跨域问题的实现思路
  • AJAX实现跨域的三种方法(代理,JSONP,XHR2)
  • ajax跨域请求js拒绝访问的解决方法
  • 原生JS实现Ajax跨域请求flask响应内容

标签:衡水 广元 枣庄 衢州 蚌埠 大理 江苏 萍乡

巨人网络通讯声明:本文标题《Ajax跨域查询完美解决通过$.getJSON()实现》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266