• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Ajax跨域查询完美解决通过$.getJSON()实现
    原因:浏览器安全上做了限制,禁止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响应内容
    上一篇:IE6中ajax aborted错误请求中断解决方法
    下一篇:你的jquery ajax无效和你的jquery引入路径有关
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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