2010-06-02 58 views
24

我嘗試在Internet Explorer中使用jQuery和$.post進行AJAX調用,但是我得到的只是一個錯誤,指示「權限被拒絕」。這個問題有點奇怪,因爲只有當我在任何其他頁面上訪問頁面時纔會出現這個問題。使用Internet Explorer和jQuery的「權限被拒絕」

例如,我在地址欄中輸入URL並讓IE加載頁面。然後我點擊一個按鈕,腳本就會開始加載JSON數據。 (提供數據的腳本位於同一臺服務器上,我使用相對URL訪問它,因此使用不同的域名在這裏不是問題,甚至嘗試使用具有相同主機部分的絕對URL。)

但當我刷新頁面,然後再試一次它就可以工作!當我從另一頁面訪問該頁面時,也是如此。起初什麼都沒有,但是當我點擊「刷新」時,一切都很好。

IE給我的錯誤消息「權限被拒絕」,而在其他瀏覽器中,我沒有注意到這種行爲。既然我已經嘗試過很多事情,但仍然無法想象問題出在哪裏,所以我想問問你,你認爲問題可能是什麼?

編輯: 一個小例子:

的test.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 
    <head> 
     <script type="text/javascript" src="/ietest/jquery.js"></script> 
     <script type="text/javascript" src="/ietest/test.js"></script> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    </head> 
    <body> 
     <a href="#">Test</a> 
    </body> 
</html> 

ajax.html

It works! 

test.js

$(document).ready(function(){ 
    $('a').click(function(){ 
     $.post('/ietest/ajax.html', function(data) { 
      alert(data); 
     }); 
    }); 
}); 

嘗試在這裏:http://t1318.greatnet.de/ietest/test.html

+0

你可以發佈你的代碼嗎?這將有助於:) – 2010-06-02 17:52:31

+0

它在那裏;)當我一直在尋找解決方案時,我已經多次閱讀過這個問題。可悲的是,沒有人知道發生了什麼。 – rallex 2010-06-02 18:04:16

+0

你在使用哪個版本的IE? – 2010-06-02 18:35:10

回答

28

從jquerys論壇here的帖子中,您必須將內容類型meta作爲頭標記中的第一項。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="/ietest/jquery.js"></script> 
     <script type="text/javascript" src="/ietest/test.js"></script> 
    </head> 
    <body> 
     <a href="#">Test</a> 
    </body> 
</html> 
0

如果本地(本地主機),那麼你必須有完整的路徑安全原因。

+0

在這裏用'http:// 192.168.0.5/ietest/ajax.html'試了一下。其他瀏覽器這樣做,IE仍然是一樣的。 – rallex 2010-06-02 18:17:04