AJAX 跨域总结

AJAX的使用方面:使用ajax的跨域访问的问题,经过任务提醒项目后,总结出以下五种方式:

                 i.          使用Jquery来加载javascript的方式:如,

        jQuery.ajax({

          type: "GET",

          timeout:this.ajaxRequestTimeout,

          url: this.userTaskIsReadUrl,

          dataType: "script",

          cache:false,

          async:true,

          global:false,

          success:function(){}

          }

});

          注:此方法需要远程url返回的是js代码,我理解的是,她它原理是将远程的js代码加载到本页来执行,而非直接访问远程数据,所以不存在跨域问题,不过至于参数type: "GET",这个用get和用post会有什么不同,分别能起到什么作用,还不是很理解

               ii.          采用iframe方式:如,

假如我需要在activePage.html页面使用跨域访问,那先新建一个静态页ajaxproxy.html,在此页面里写ajax方法,然后再在activePage.html页中将ajaxproxy.html页面通过iframe方式引进来 iframeIDiframeId,然后在页面使用代码 var proxy=document.getElementById(‘iframeId’).contentWindow;使用变量proxy就可以操作ajaxproxy.html里面的ajax函数了,实现了跨域,但貌似ajaxproxy.html文件必须和要跨的域在同一域下。

              iii.          采用java的方式,在本地新建一个jsp文件,在jsp文件里面采用readURl的方式去访问远程url,然后在需要跨域的页面里采用ajax调用本地的这个jsp即可实现跨域。

              iv.          貌似添加js代码:document.domain = "duowan.com"; 可以实现一级域名下面的子域名间跨域。

                v.          还有一种方法和第一种方法一样,只不过动态加载js是要自己写,而不是采用jquery,拷贝老大的代码如下:

  function dynamicLoadScript(scriptUrl,onloadFunction){

       var scriptBlock  = document.createElement("script");

       scriptBlock.src = scriptUrl; scriptBlock.type = "text/javascript";

       scriptBlock.language = "javascript";

       if(onloadFunction && isIEBrowser()){

              scriptBlock.onreadystatechange = function(){

                if(scriptBlock.readyState=='loaded') onloadFunction();

         };

       }else if(onloadFunction){

              scriptBlock.onload = function(){onloadFunction();};}

document.getElementsByTagName("head")[0].appendChild(scriptBlock);

return scriptBlock;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值