iframe不适用于某些网站

时间:2013-01-27 06:17:08

标签: html iframe

我尝试使用iframe访问某些网站。似乎它适用于某些网站,但不适用于其他网站。有关于此的任何想法?怎么解决? iframe中的src链接有效,我可以直接访问它。它只是没有出现在iframe中。

这与X-Frame-Options有关吗?如何绕过它?

非常感谢。

======

这是html代码:

<html>
<head>
<title>IFrame Test</title>
</head>

<body>
<iframe src="http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CITy7klxn%2F7bvn0ay1PXvKwtZSEswjTW0qipvZgGECAqg4jFMvRrmqEsewCV2vrDIKlj1m7fQBXl8oXaLeyNdntQSWHx%2F4LzcWUbay3v1DbpVnqVPkubyxNIXPljUBoBNuLFC0ZLm4SV46zTasP3e6uSYcfiqrWYSyZV%2B7G&spm=2014.21191910.1.0" width="100%" height="600" >
</iframe>

</body>
</html>

1 个答案:

答案 0 :(得分:2)

  

这与X-Frame-Options有关吗?

是的,好吧。确定服务器端采用了哪种技术以防止内容被加载到不同域的帧中很困难,可能是不可能的,但是没有使用X-Frame-Options:SAMEORIGIN。当尝试在iframe中加载相关网页时,这是返回的响应标头:

HTTP/1.1 302 Moved Temporarily
Server: Tengine
Date: Sun, 27 Jan 2013 06:24:22 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Location: [too long, irrelevant, removed ;)]
Expires: Sun, 27 Jan 2013 06:24:22 GMT
Cache-Control: max-age=0

正如您所看到的,服务器使用HTTP状态代码302(moved temporarily)进行响应,这通常用于Web服务器而不是forbidden,以防止任何其他此类请求超载Web服务器(或在日志文件中区分各个被拒绝的请求)。但是,没有任何X-Frame-Options:SAMEORIGIN标头。无论如何,各种浏览器可能会或可能不会尊重这样的标题。

  

如何解决这个问题?

在所涉及的Web服务器上没有做一些非法和讨厌的工作,或者知道Web服务器需要满足哪些条件才能授予对所请求位置的访问权限,这是不可能的。但是,您可以请求Web服务器的管理员为您的域规则例外。只是一个想法...

编辑:经过进一步调查,您提供的网址实际重定向到

http://item.taobao.com/item.htm?id=13188785766&ali_trackid=2:mm_32761976_0_0:1359267664_4k8_1456591680&spm=2014.21191910.1.0

意味着涉及一些服务器端重写规则。这对您的URL没有多大帮助,但您可以使用它转换的URL,如果你想要的是将目标页面呈现给最终用户。问题是,您丢失了任何会话数据和/或跟踪您可能想要强制给毫无戒心的用户的cookie并收集某些推荐方案的损失。我并不是说你想做的就是这样,但是如果你这样做了,那么放入iframe源就不会有翻译的URL。 ;)