资源描述:
《跨域请求解决方案》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、跨域请求解决方案 篇一:前端解决跨域问题的8种方案(最新最全) 1)在/中: d(转载于:小龙文档网:跨域请求解决方案)=''; varifr=('iframe'); ='/'; =none; (ifr); =function(){ vardoc=
2、
3、;//在这里操作doc,也就是 =null;}; 2)在/中: =''; 这个没什么好说的,因为script标签不受同源策略的限制。 functionloadScript(url,func){ varhead=
4、
5、('
6、head')[0];varscript=('script'); =url; ==function(){ if(!
7、
8、=='loaded'
9、
10、 =='complete'){ func(); ==null; } }; (script,0); } ={ sug:function(data){ (data); } } loadScript('p> //我们请求的内容在哪里? //我们可以在chorme调试面板的source中看到script引入的内容 原理是利用
11、来进行传值。 假设域名下的文件要和域名下的传递信息。 1)首先创建自动创建一个隐藏的iframe,iframe的src指向域名下的页面 2)响应请求后再将通过修改的hash值来传递数据 3)同时在上加一个定时器,隔一段时间来判断的值有没有变化,一旦有变化则获取获取hash值 注:由于两个页面不在同一个域下IE、Chrome不允许修改的值,所以要借助于域名下的一个代理iframe 代码如下: 先是下的文件文件: functionstartRequest(){ varifr=('i
12、frame'); ='none'; ='/lab/cscript/#paramdo';(ifr); } functioncheckHash(){ try{ vardata=?(1):''; if(){ ('Nowthedatais'+data); } }catch(e){}; } setInterval(checkHash,XX); 域名下的: //模拟一个简单的参数处理操作 switch(){ case'#paramdo': callBack(); brea
13、k; case'#paramset': //dosomething…… break; } functioncallBack(){ try{ ='somedata'; }catch(e){ //ie、chrome的安全机制无法修改, //所以要利用一个中间的cnblogs域下的代理iframe varifrproxy=('iframe' ); ='none'; ='cscript/#somedata';//注意该文件在""域下 (ifrproxy); } } 下
14、的域名 //因为和自身属于同一个域,所以可以改变其的值 =(1); 的美妙之处:name值在不同的页面(甚至不同域名)加载后依旧存在,并且可以支持非常长的name值(2MB)。 1)创建/ 2)创建/,并加入如下代码 functionproxy(url,func){ varisFirst=true, ifr=('iframe'), loadFunc=function(){ if(isFirst){ ='p> isFirst=false ; }else{ fu
15、nc(); (); (ifr); =''; ifr=null; } }; =url; ='none'; if()('onload',loadFunc); =loadFunc; (iframe); } proxy('/',function(data){ (data); }); 3在/中包含: ='要传送的内容'; 1)/中的代码: 篇二:跨域解决方案 工程项目中中的添加如下配置: CORS *
16、 GET,POST,HEAD,PUT,DELETE Accept,Origin,X-Requested-With,Content-Type,Last-Modified Set-Cookie true CORS /* 然后在webContent文件夹下的lib文件夹中拷贝入,这两个库文件即可。 还有一个技巧:在调试浏览器界面向后台请求时,注意切换出浏览器的调试界面,容易找出错误在哪里。 篇三:跨域解决方案 解读——一、Directo