2014-02-28 119 views
0

我有HTML頁面從另一個頁面使用Ajax拉數據。XMLHttpRequest請求問題

該代碼在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> 

鉻的任何提示。

+0

你只使用JavaScript或jQuery? – sourRaspberri

+0

@Beneto:Just javascript –

+0

你能直接訪問網址嗎? – Vinoth

回答

0

這通常是因爲嘗試使用XMLHTTPRequest而不使用HTTP URI。

Firefox通過file:方案URI支持XHR,大多數瀏覽器都不支持。

如果您想使用Ajax,請通過Web服務器運行您的頁面。

+0

我已更新我的問題並添加了代碼,現在它適用於IE和Firefox,但仍然面臨着Chrome上的相同問題。 –

+0

@DarkMatter - 解決方案仍然相同:如果您想使用Ajax,請通過Web服務器運行您的頁面。 – Quentin

+0

謝謝,如果我遇到任何問題,我會盡力回覆。 –