資源描述:
《跨域請(qǐng)求解決方案》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、跨域請(qǐng)求解決方案 篇一:前端解決跨域問(wèn)題的8種方案(最新最全) 1)在/中: d(轉(zhuǎn)載于:小龍文檔網(wǎng):跨域請(qǐng)求解決方案)=''; varifr=('iframe'); ='/'; =none; (ifr); =function(){ vardoc=
2、
3、;//在這里操作doc,也就是 =null;}; 2)在/中: =''; 這個(gè)沒(méi)什么好說(shuō)的,因?yàn)閟cript標(biāo)簽不受同源策略的限制?! unctionloadScript(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> //我們請(qǐng)求的內(nèi)容在哪里? //我們可以在chorme調(diào)試面板的source中看到script引入的內(nèi)容 原理是利用
11、來(lái)進(jìn)行傳值?! 〖僭O(shè)域名下的文件要和域名下的傳遞信息?! ?)首先創(chuàng)建自動(dòng)創(chuàng)建一個(gè)隱藏的iframe,iframe的src指向域名下的頁(yè)面 2)響應(yīng)請(qǐng)求后再將通過(guò)修改的hash值來(lái)傳遞數(shù)據(jù) 3)同時(shí)在上加一個(gè)定時(shí)器,隔一段時(shí)間來(lái)判斷的值有沒(méi)有變化,一旦有變化則獲取獲取hash值 注:由于兩個(gè)頁(yè)面不在同一個(gè)域下IE、Chrome不允許修改的值,所以要借助于域名下的一個(gè)代理iframe 代碼如下: 先是下的文件文件: functionstartRequest(){ varifr=('i
12、frame'); ='none'; ='/lab/cscript/#paramdo';(ifr); } functioncheckHash(){ try{ vardata=?(1):''; if(){ ('Nowthedatais'+data); } }catch(e){}; } setInterval(checkHash,XX); 域名下的: //模擬一個(gè)簡(jiǎn)單的參數(shù)處理操作 switch(){ case'#paramdo': callBack(); brea
13、k; case'#paramset': //dosomething…… break; } functioncallBack(){ try{ ='somedata'; }catch(e){ //ie、chrome的安全機(jī)制無(wú)法修改, //所以要利用一個(gè)中間的cnblogs域下的代理iframe varifrproxy=('iframe' ); ='none'; ='cscript/#somedata';//注意該文件在""域下 (ifrproxy); } } 下
14、的域名 //因?yàn)楹妥陨韺儆谕粋€(gè)域,所以可以改變其的值 =(1); 的美妙之處:name值在不同的頁(yè)面(甚至不同域名)加載后依舊存在,并且可以支持非常長(zhǎng)的name值(2MB)?! ?)創(chuàng)建/ 2)創(chuàng)建/,并加入如下代碼 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在/中包含: ='要傳送的內(nèi)容'; 1)/中的代碼: 篇二:跨域解決方案 工程項(xiàng)目中中的添加如下配置: CORS *
16、 GET,POST,HEAD,PUT,DELETE Accept,Origin,X-Requested-With,Content-Type,Last-Modified Set-Cookie true CORS /* 然后在webContent文件夾下的lib文件夾中拷貝入,這兩個(gè)庫(kù)文件即可?! ∵€有一個(gè)技巧:在調(diào)試瀏覽器界面向后臺(tái)請(qǐng)求時(shí),注意切換出瀏覽器的調(diào)試界面,容易找出錯(cuò)誤在哪里?! ∑嚎缬蚪鉀Q方案 解讀——一、Directo