iFrame报错Refused to display URL in a frame because it set X-Frame-Options to SAMEORIGIN

如果服务端不允许页面iframe嵌套,本地chromium会拦截iframe的load请求来阻止访问。

结合经验,我想到了如下解决方法来强行绕过这个检测:

我在初次研究ajax的时候发现了如果把xmlhttp指向任意一个非下载资源页面时,请求到的响应数据将是该页面的源代码。

我们可以把获得的网页源码直接通过document.write写到页面里。

利用这个feature,代码如下

1
2
3
4
5
6
7
8
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.write(xmlhttp.responseText);
}
}
xmlhttp.open("GET", "https://mathsolver.microsoft.com/zh", true);
xmlhttp.send();