XMLHttpRequest open()返回访问被拒绝

时间:2010-04-25 15:46:51

标签: internet-explorer-8 xmlhttprequest

我有xhr open()方法的问题。我的代码如下:

var xmlhttp=false;

if(!xmlhttp)
    try
    { 
        xmlhttp=new XMLHttpRequest(); 
    }
    catch(e)
    {
        xmlhttp=false;
    }

function returnPage(url)
{
    if(!xmlhttp)
        return alert("Your browser doesn't seem to support XMLHttpRequests.");

    xmlhttp.open("GET",url,true);
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState!=4) return;
        if(!xmlhttp.status||xmlhttp.status==200)
            alert(xmlhttp.responseText);
        else
            alert("Request failed!");
    }; //onreadystatechange

    xmlhttp.send(null);
}

致电:

<a href='#' onclick="returnPage('http://www.something.com'); return false;">Link 1</a></p>

我正在使用IE8(因为我正在构建Web切片)并且收到错误“访问被拒绝”。我在互联网上发现问题是XHR不能在不同的域中工作,但我使用的是Firefox附加组件中的代码,它运行正常。这个附加组件和“我的”代码(它们是相同的)都在调用同一页面。加载项如何访问而我的代码没有?

1 个答案:

答案 0 :(得分:6)

您正在使用与您的网站相同的域进行AJAX调用吗?您无法向其他域发出请求。

修改

Firefox附加组件具有提升的权限(因为用户必须安装它们)。这就是加载项可以进行跨域请求的原因。