資源描述:
《跨域請求解決方案》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、跨域請求解決方案 篇一:前端解決跨域問題的8種方案(最新最全) 1)在/中: d(轉載于:小龍文檔網(wǎng):跨域請求解決方案)=''; 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、來進行傳值?! 〖僭O域名下的文件要和域名下的傳遞信息?! ?)首先創(chuàng)建自動創(chuàng)建一個隱藏的iframe,iframe的src指向域名下的頁面 2)響應請求后再將通過修改的hash值來傳遞數(shù)據(jù) 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); 域名下的: //模擬一個簡單的參數(shù)處理操作 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)?! ?)創(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在/中包含: ='要傳送的內容'; 1)/中的代碼: 篇二:跨域解決方案 工程項目中中的添加如下配置: CORS *
16、 GET,POST,HEAD,PUT,DELETE Accept,Origin,X-Requested-With,Content-Type,Last-Modified Set-Cookie true CORS /* 然后在webContent文件夾下的lib文件夾中拷貝入,這兩個庫文件即可?! ∵€有一個技巧:在調試瀏覽器界面向后臺請求時,注意切換出瀏覽器的調試界面,容易找出錯誤在哪里?! ∑嚎缬蚪鉀Q方案 解讀——一、Directo