XMLHttpRequest open()返回访问被拒绝

rjo*_*vic 4 xmlhttprequest internet-explorer-8

我有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);
}
Run Code Online (Sandbox Code Playgroud)

致电:

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

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

Mat*_*att 6

您正在将AJAX调用到您的网站所在域名?您无法向其他域发出请求.

编辑:

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

  • 如果它是一个需要使用xmlhttprequest.open()读取本地文件的本地html页面怎么办? (2认同)