我有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附加组件中的代码,它运行正常。这个附加组件和“我的”代码(它们是相同的)都在调用同一页面。加载项如何访问而我的代码没有?
答案 0 :(得分:6)
您正在使用与您的网站相同的域进行AJAX调用吗?您无法向其他域发出请求。
修改强>:
Firefox附加组件具有提升的权限(因为用户必须安装它们)。这就是加载项可以进行跨域请求的原因。