的XMLHttpRequest的open()返回访问被拒绝
问题描述:
我有XHR open()方法的问题。我的代码如下:的XMLHttpRequest的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(因为我建立网页快讯)和我收到错误 “拒绝访问”。我在网上看到的问题是,XHR不能跨越不同领域的工作中发现,但我用代码Firefox附加在其上工作正常。那个加载项和“我的”代码(它们是相同的)正在调用同一页面。如何加载项访问和我的代码不是?
答
是你正在做的AJAX调用同一个域中您网站的域名?您无法向其他域发出请求。
编辑:
Firefox附加组件拥有更高权限(因为用户必须安装它们)。这就是附加组件可以进行跨域请求的原因。
不,我知道这个问题的。但我很困惑如何火狐附加组件谁也使XHR调用“页”工作和我的代码呢?代码是一样的。 – rjovic 2010-04-25 15:53:17
@rjovic - 看我的编辑。由于最终用户必须实际安装附加组件,因此附加组件具有较高的权限。 – Matt 2010-04-25 15:54:40
如果是需要使用xmlhttprequest.open()读取本地文件的本地html页面会怎么样? – Maxim 2011-11-24 22:54:57