Javascript XMLHttpRequest请求出现问题

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

我让html页面使用ajax从另一个页面提取数据

该代码在firefox上运行良好,但在IE和Chrome中的xhr.open…上拒绝访问

示例代码如图所示

<!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服务器运行你的页面。谢谢,如果我遇到任何问题,我会设法回去。