2010-05-17 45 views
0

以下代碼在IE8和Safari4中按預期工作,但不在Firefox3.6和Chrome中運行。所有瀏覽器都在Windows上。Firefox和Chrome默認不支持跨域AJAX?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" /> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script> 
     <script type="text/javascript"> 
      $(function() { $('#tabs').tabs(); }); 
     </script> 
    </head> 
    <body> 
     <div id="tabs"> 
      <ul> 
       <li><a href="http://www.google.com/">Google</a></li> 
       <li><a href="http://www.msn.com/">MSN</a></li> 
      </ul> 
     </div> 
    </body> 
</html> 

似乎Firefox和Chrome在默認情況下不支持跨域AJAX,對吧?有什麼簡單的方法可以打開Firefox和Chrome中的跨域AJAX?

+0

重新標記和清除阿賈克斯,因爲這是與jQuery的用戶界面,而不是AJAX本身的觀念問題。此外,檢查HTTP ://jqueryui.com/demos/tabs/#Ajax_mode。由於你依賴於AJAX來加載內容,所以UI插件需要知道如何做跨域XHR(我懷疑它是如此)。 – 2010-05-17 20:29:24

回答

0

使用JSONP(基本上,你插入一個<script src="otherdomain.tld/....?callback=your_function"/>(jQuery不會是自動的)。

0

XSS(跨站點腳本)是一個很大的壞處。除非你正在談論對另一方進行安全修改以使其支持它,否則我無法相信它們會默認。

編輯

我只注意到你的代碼有沒有做任何XSS雖然。你從中得到了什麼樣的錯誤(如果有的話)?

+0

沒有錯誤顯示在Firefox和Chrome中,沒有任何東西顯示在標籤下面 – Ethan 2010-05-17 16:44:51

+0

你想要做的事不應該在** any **瀏覽器中默認,事實上,CSS,因此是一個巨大的在瀏覽器上啓用安全風險 – Lance 2010-05-17 17:52:29