2012-07-29 75 views
0

我想弄清楚什麼是錯誤的功能load()不適用於Chrome和Firefox。使用Internet Explorer它可以很好地工作。簡單的Ajax負載()不工作在jQuery

我有一個WampServer。

在Chrome中,我得到錯誤:

Origin null is not allowed by Access-Control-Allow-Origin

我把本地服務器上的文件,它是上線。我可以訪問一個圖片,看代碼。但是load()出了什麼問題?

<body> 
    here is a image 
    <img src="/wamp/www/testing/baby2.jpg" width="100px" height="200px"></img> 

    <ul id="aj"> 
     <li><a href="/wamp/www/testing/celeb1.html">One</a></li> 
     <li><a href="/wamp/www/testing/celeb2.html">Two</a></li> 
     <li><a href="/wamp/www/testing/celeb3.html">Three</a></li> 
    </ul> 
    <br> 
    <div id="desc"> 

    </div> 

    <script> 
    $(document).ready(function(){ 
     $('#aj a').click(function(){ 
      var v= $(this).attr('href'); 

      $('#desc').load(v); 
      return false; 
     }); 
    });//ready 
    </script> 
</body> 

在此先感謝。

+0

這意味着Chrome(也可能是Firefox)認爲您正在提出跨域請求。如果您通過服務器加載頁面,但是您可能直接加載文件,則情況不應該如此?代碼本身是正確的。 – 2012-07-29 09:42:05

+0

在地址欄中查看您的網址。如果它以'file://'開始,那麼同源策略將限制對其他文件的訪問。 Firefox不允許你在該頁面的目錄之外獲取文件([link](https://developer.mozilla.org/En/Same-origin_policy_for_file:_URIs)),Chrome根本不允許任何訪問([link] (https://code.google.com/p/chromium/issues/detail?id=40787))。另外,如果頁面URL以'file://'開始,那麼您不通過Web服務器訪問您的文件,這可以通過'http://'完成。 – apsillers 2012-07-29 22:08:40

回答

1

我想在URL中的問題

嘗試寫他們喜歡....

 <ul id="aj"> 
     <li><a href="/testing/celeb1.html">One</a></li> 
     <li><a href="/testing/celeb2.html">Two</a></li> 
     <li><a href="/testing/celeb3.html">Three</a></li> 
    </ul> 

您也可以看看這個@Topic

1

這是Chrome的一個問題: see this bugthis answer

您可能需要使用一個特殊的命令行標誌,以啓動Chrome瀏覽器:

chrome.exe --allow-file-access-from-files 
0

在Apache的設置(轉到你的WAMP安裝命名的httpd.conf文件),你指定你的主頁目錄?當您使用以正斜槓開頭的鏈接時,這是您的瀏覽器將會使用的內容,例如/testing/celeb1.html

通常情況下,它會像/wamp/www/。因此,您只能使用URI的/testing/...部分作爲超鏈接。