如何想通过iframe嵌套一个QQ快捷登录的,然后用javascript进行获取iframe里面的相关html的话会出现错误的,因为这个是违反了javascript里面的一个同源策略,是获取不到里面的内容的,会出现一个错误的,那么要怎么进行跨域请求通信呢?今天在网上找了一下资料,差不多都是讲有四个可行的方法。这里就不罗嗦了,哪些方法可自行查找,我们今天讲的是通过flash进行跨域通信,而且是ajax无刷新通信,比较符合我们日常的一些开发需要。

下面直接贴上demo的代码地址:http://pan.baidu.com/s/1c0gYjok,然后提取密码是:n1xh;这个方法主要就是通过flash进行做跳板进行不同域之间的通信,而且设置起来比较简单,只要两个域的根目录设置crossdomain.xml能进行通讯的域名就OK了。如:

<?xml version="1.0" encoding="utf-8"?>
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

上面设置的是所有的域名都能进行通信。

如果需要设置html或者javascript能够跨域通信,那么这个就需要设置标头

header('Access-Control-Allow-Origin:*');
header("Content-type: text/html; charset=utf-8");
//反正就是让这个请求后的标头加上Access-Control-Allow-Origin 的header
//response headers里面有这个选项就行

然后用这个能抓取到QQ号码的主要是进行快捷登录的根目录下面设置的crossdomain.xml恰好又是所有的外部swf文件都是可以与之通信的,(这个可能是方便别的网站调用进行快捷登录的吧)这个就方便了我们的调用了,把这个flash嵌套到一个div里面,然后就都好办了。

相关文章:

  • 暂无相关文章