`
西北小强
  • 浏览: 342584 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java+jQuery解决ajax跨域小demo

    博客分类:
  • Java
阅读更多

1、在服务端设置请求头信息

前台JS代码:

$("#but4").click(function(){   

 var vesion=parseInt($.browser.version);

    if($.browser.msie && vesion>=8 && vesion<11){//判断浏览器版本是否为IE

       xdr = new XDomainRequest();

       xdr.open("POST", "http://shop.weibaobei.com/test1/test1!getAjaxData.action?type=IE");

       xdr.send();

       xdr.onload=function(){

           alert("返回结果:"+xdr.responseText);

       }

    }else{

       $.ajax({

    url:'http://shop.weibaobei.com/test1/test1!getAjaxData.action',

           type:'post',

           data:{random:Math.random()},

           success:function(data){

           alert(data);

           }

           });

}

})

后台java代码:

    public void getAjaxData() throws IOException{

       PrintWriter out = this.getResponse().getWriter();

       this.getResponse().setContentType("text/html;charset=UTF-8");

    this.getResponse().addHeader("Access-Control-Allow-Origin","*");//'*'表示允许所有域名访问,可以设置为指定域名访问,多个域名中间用','隔开

       //如果IE浏览器则设置头信息如下

       if("IE".equals(this.getRequest().getParameter("type"))){

           this.getResponse().addHeader("XDomainRequestAllowed","1");

       }

       out.print("success");

       out.close();

    }

注意点:

    a、在使用此方法时在后端为了安全起见最好设置允许那些域进行跨域访问,如“shop.weibaobei.com",多个域名直接用“,”分开;

 
    b、由于IE8-IE10不支持通过设置Access-Control-Allow-Origin头的方式,所以对于IE需要按照IE提供的方案使用XDomainRequest对象解决,
 
2、服务端以js代码的方式给前台返回数据

前台JS代码:

  $("#but6").click(function(){

      $.getScript('http://shop.weibaobei.com/test1/test1!getJavaScriptData.action',function(){

//前台获取后台返回数据

         alert(a);         

         alert(remote.test);

      });

  });

后台java代码:

    public void getJavaScriptData() throws IOException{

       PrintWriter out = this.getResponse().getWriter();

       this.getResponse().setContentType("text/html;charset=UTF-8");

       out.print("var s=23; var a='444'; var f=[2,1];var remote={test:'hello'}; ");//给前台返回js代码

       out.close();

    }

 
分享到:
评论

相关推荐

    Jquery跨域Ajax请求测试

    Jquery跨域访问Web服务的demo源码

    ajax跨域请求demo.zip

    一个ajax跨域请求的demo实例,前端采用jquery的ajax,后端采用tomcat集成的HttpServlet的方法接受前端的数据和返回数据

    jquery+ajax实现跨域请求的方法

    本文实例讲述了jquery+ajax实现跨域请求的方法。分享给大家供大家参考。具体实现方法如下: 说明:这里的dataType 为 “jsonp” ;type 只能为 GET 前台请求代码如下: 代码如下:$.ajax({  type: “GET”,  url...

    jQuery使用AJAX Demo

    jQuery使用AJAX的测试Demo,使用JSONP支持跨域。

    ajax处理跨域请求

    通过jquery的ajax处理跨域请求的DEMO,代码比较简单,仅供学习参考。

    jquery解决客户端跨域访问问题

    由于自己在项目中遇到跨域问题,借此机会对跨域问题来刨根问底,查阅了相关资料和自己的实践,算是解决了跨域问题。便记录下来,以供查阅。  jQuery.ajax()支持get方式的跨域,这其实是采用jsonp的方式来完成的。 ...

    Ajax跨域请求COOKIE无法带上的完美解决办法

    1、原生ajax请求方式: 1 var xhr = new XMLHttpRequest();...2、jquery的ajax的post方法请求: $.ajax({ type: "POST", url: "http://xxx.com/api/test", dataType: 'json',  // 允许携带证书

    ajax跨域请求

    示例简单明了,一目了然的实现了跨域请求,是个很实用的DEMO

    跨域访问demo.rar

    我一篇博文关于跨域访问前端的demo,主要就是为了说明,ajax请求,需要加上参数crossDomain: true, 和xhrFields: {withCredentials: true}, 以实现cookie的会话跟踪 ...

    jQuery实现ajax调用WCF服务的方法(附带demo下载)

    本文实例讲述了jQuery实现ajax调用WCF服务的方法。分享给大家供大家参考,具体如下: 关于AJAX调用WCF服务分为跨域和不跨域两种方式,今天咱们先介绍下不跨域下的调用方法。DEMO是在VS2008写的. 经过测试与研究,...

    新浪微博表情jQuery插件

    但却比较繁琐,首先要了解新浪微博开放平台的表情API,然后通过某种方式调用,如果通过网页后台代码直接读取储存到JavaScript变量中,又会拖慢网页加载速度,如果采用AJAX读取,又要解决跨域问题,即便成功读取到...

    echart3 地图数据省市区三级级联demo

    数据比较老,实现了省市区三级级联demo,大家打开直接用即可,点击市出不来区县,请放到apache或者NGINX 下面用浏览器访问,因为用了jquery ajax,硬盘直接打开ajax会报跨域

    personal-practice:个人练习

    API: MSDN APIWebSocket Demo在线画线框图(可到处png和svg)jquery-ajax-filter 封装jquery Ajax作为ajax过滤器vue-axios-filter vue axios请求响应过滤器示例wechat-websocket相关图片无websocket文件夹draw文件夹无...

    c#描述swfupload上传实例

    * 类似AJAX的无刷新上传; * 可以显示上传进度; * 良好的浏览器兼容性; * 兼容其他JavaScript库 (例如:jQuery, Prototype等); * 支持Flash 8和Flash 9; SWFUpload不同于其他基于Flash构建的上传工具,它有着...

    亚信java笔试题-react-study:前端知识整合以及react基础demo

    亚信java笔试题 前端资料整理 ##HTML ##CANVAS ##H5 ##CSS ##LESS ##Autoprefixer ##CSS3 ##Font ##SASS ##Scope ##BEM ##JS ##swiper滑动插件 ##Ajax ##heatMap热力图 ##prototype原型链 ##JQuery ##语法高亮 ##ES6...

Global site tag (gtag.js) - Google Analytics