我遇到了一个奇怪的例子,当使用msxml时,似乎违反了IE中相同的原始策略。这是一个完整的例子:
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的内容。这不是违反同一起源的吗?我错过了什么吗?