Javascript IE';s msxml和可能违反同源策略
我遇到了一个奇怪的例子,当使用msxml时,IE中似乎违反了同源策略。下面是一个完整的示例:Javascript IE';s msxml和可能违反同源策略,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我遇到了一个奇怪的例子,当使用msxml时,IE中似乎违反了同源策略。下面是一个完整的示例: var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false
var xmlhttp=false;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E)
{
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
xmlhttp = window.createRequest();
} catch (e) {
xmlhttp=false;
}
}
function doRequest()
{
xmlhttp.open('GET','http://www.google.com',true);
xmlhttp.send();
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4)
{
alert(xmlhttp.responseText);
}
};
}
从IE中的一个简单onClick事件调用doRequest()方法,无论页面托管在哪个域,都可以很高兴地获得google.com的内容。这不是违反了同样的起源吗?我遗漏了什么吗?你尝试过google.com之外的其他域名吗?我有一种感觉,谷歌可能已经允许访问一些资源,让这项工作。你使用哪个域名无关紧要。这是由浏览器强制执行的限制