现在的位置: 首页 > 综合 > 正文

iframe跨域引用其他url造成拒绝访问的解决办法

2013年10月10日 ⁄ 综合 ⁄ 共 912字 ⁄ 字号 评论关闭

有这样一段代码,需要在隐藏的iframe中调用其他的url:

 

Js代码 复制代码
  1. function a(){   
  2.     var url=...;//跨域url   
  3.     var param=...;   
  4.     iframe3.document.location=encodeURI(url+param);   
  5. }  

 

 

这个函数在同一页面上调用一次,没问题。再点一次呢?问题出现:JS提示拒绝访问。

如何能够避免这个问题呢,请看下面的代码。

 

Js代码 复制代码
  1. function b(){   
  2.     var url=...;//跨域url   
  3.     var param=...;   
  4.     var ifr=document.createElement("iframe");//以下创建一个隐藏的iframe   
  5.     ifr.setAttribute("width",0);   
  6.     ifr.setAttribute("height",0);   
  7.     document.body.appendChild(ifr);   
  8.     ifr.src=encodeURI(url+param);   
  9. }  

 

每次在新开的iframe中完成url所需的工作,这样就可以满足要求了。

 

注意,这样做适用于你的url仅做一些原子类的操作,如打印等。如果这个url具有连续性(比如要监听一个事件),建议你不要这样做,以免在同一个页面产生多个此类的操作。

抱歉!评论已关闭.