JS 客户端获取 http://www.baidu.com/index.html 的源码,有办法吗?不能用服务器中转。
window.onerror=function(){return true;}
function test(){
var oHead = document.getElementsByTagName('HEAD').item(0);
var script= document.createElement("script");
script.type = "text/javascript";
script.src="http://www.baidu.com/index.html";
script.id="scriptAjax";
script.onload = script.onreadystatechange = function() {
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete" ) {
script.onload = script.onreadystatechange = null;
//script.src.innerHTML ??? 这里加载成功了,但获取不到内容。
alert ( script.innerHTML ); //空
}};
oHead.appendChild( script);
}
window.onerror=function(){return true;}
function test(){
var oHead = document.getElementsByTagName('HEAD').item(0);
var script= document.createElement("script");
script.type = "text/javascript";
script.src="http://www.baidu.com/index.html";
script.id="scriptAjax";
script.onload = script.onreadystatechange = function() {
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete" ) {
script.onload = script.onreadystatechange = null;
//script.src.innerHTML ??? 这里加载成功了,但获取不到内容。
alert ( script.innerHTML ); //空
}};
oHead.appendChild( script);
}
但baidu 不行比如你要在a.com 获取b.com那么你需要对a.com及b.com都有控制权限,这样是可以实现js的纯js跨域获取的
浏览器中的js引擎从不对script的src属性进行检查,并且允许任意的域中的文件被加载,这本身就是一个允许的操作。
那有别的方法可以获取http://www.baidu.com/index.html 的内容吗?
岂不是 我直接用js就可以控制所有的网页了
甚至可以实现一些很阴暗的东西
所以现在浏览器 不给你 非同域的js进行交互