Javascript XMLHttpRequest请求出现问题
我让html页面使用ajax从另一个页面提取数据 该代码在firefox上运行良好,但在IE和Chrome中的xhr.open…上拒绝访问 示例代码如图所示Javascript XMLHttpRequest请求出现问题,javascript,ajax,jsp,Javascript,Ajax,Jsp,我让html页面使用ajax从另一个页面提取数据 该代码在firefox上运行良好,但在IE和Chrome中的xhr.open…上拒绝访问 示例代码如图所示 <!DOCTYPE html> <html> <head> <script type="text/Javascript"> function changeContent(url) { var xhr = new XMLHttp
<!DOCTYPE html>
<html>
<head>
<script type="text/Javascript">
function changeContent(url)
{
var xhr = new XMLHttpRequest();
xhr.open("GET",url,false); //Access denied on this line
xhr.send();
var roster = document.getElementById("roster");
roster.innerHTML=xhr.responseText;
}
</script>
</head>
<body>
<img src=images/logo_990x80.png width=1300" height="80" />
<div class="buttonBar">
<input type="button" value="data" onclick="changeContent('data.html')"/>
</div>
<div id="roster" class="roster">
Click on the buttons above to choose a roster
</div>
</body>
</html>
html包含一个包含两行数据的简单表
我怎样才能解决这个问题
编辑:下面显示的代码可以在IE和firefox上运行,但在Chrome中仍然存在同样的问题。似乎ActiveX可以在Ajax的本地文件上运行
<!DOCTYPE html>
<html>
<head>
<script type="text/Javascript">
function changeContent(url)
{
var xhr = false;
if(location.protocol=="file:")
{
if(!xhr)try{ xhr=new ActiveXObject("MSXML2.XMLHTTP"); }catch(e){xhr=false;}
if(!xhr)try{ xhr=new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){xhr=false;}
}
else
{
if(!xhr)try{ xhr=new XMLHttpRequest(); }catch(e){xhr=false;}
}
xhr.open("GET",url,false); //Access denied on this line only in Chrome
xhr.send();
var roster = document.getElementById("roster");
roster.innerHTML=xhr.responseText;
}
</script>
</head>
<body>
<img src=images/logo_990x80.png width=1300" height="80" />
<div class="buttonBar">
<input type="button" value="data" onclick="changeContent('data.html')"/>
</div>
<div id="roster" class="roster">
Click on the buttons above to choose a roster
</div>
</body>
</html>
关于铬的任何提示 这通常是由于尝试在不使用HTTP URI的情况下使用XMLHTTPRequest造成的 Firefox支持XHR over file:scheme URI,但大多数浏览器不支持
如果您想使用Ajax,请通过web服务器运行页面。您只使用javascript还是jQuery?@Beneto:只使用javascript您可以直接访问url吗?@Vinoth:是的,如果我尝试直接访问data.html,我可以在Firefox上看到数据和代码,但正如我提到的,IE和Chrome中存在问题。出于某种原因,XMLHttpRequest在某些浏览器(如Google Chrome)中被阻止,你需要用jquery替换你的代码更好更简单你想让我用jquery修改你的代码吗?我已经更新了我的问题并添加了代码,现在它可以在IE和Firefox上运行,但在Chrome上仍然面临同样的问题。@DarkMatter-解决方案仍然是一样的:如果你想使用Ajax,请通过web服务器运行你的页面。谢谢,如果我遇到任何问题,我会设法回去。