XMLHttpRequest请求问题

时间:2014-02-28 13:20:13

标签: javascript ajax jsp

我有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>

data.html包含一个包含2行数据的简单表。

如何解决此问题。

编辑:以下显示的代码适用于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>

有关铬的任何提示。

1 个答案:

答案 0 :(得分:0)

这通常是在不使用HTTP URI的情况下尝试使用XMLHTTPRequest引起的。

Firefox支持超过file:方案URI的XHR,大多数浏览器都不支持。

如果要使用Ajax,请通过Web服务器运行页面。