2012-05-28 45 views
0

基本上,我試圖在人們點擊鏈接時獲取遠程內容。jQuery load()函數不會加載遠程頁面,但在文本編輯器中以預覽模式工作。

它在Coda HTML預覽窗口中工作,但是當我在真實瀏覽器(Chrome/FF/Safari)中測試html時,它不起作用,遠程內容將不會被獲取。 (我確信jquery正在工作,因爲警報('url is'+ url);當我點擊鏈接時彈出)

它是有線的。哪裏不對?

enter image description here

enter image description here

我的代碼如下

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Sample</title> 

    <link type="text/css" href="http://localhost/jquery-ui-1.8.20.custom/css/smoothness/jquery-ui-1.8.20.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="http://localhost/jquery-ui-1.8.20.custom/js/jquery-1.7.2.min.js"></script> 
    <script type="text/javascript" src="http://localhost/jquery-ui-1.8.20.custom/js/jquery-ui-1.8.20.custom.min.js"></script> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
     $('#links a').click(function(e) { 
      var url = $(this).attr('href'); 
        alert('url is ' + url); 
      $('#content').load(url); 
      e.preventDefault(); 
     }); 
    }); // document ready 
    </script> 

</head> 

<body> 

<ul id="links"> 
    <li><a href="http://google.com">Google</a></li> 
    <li><a href="http://yahoo.com">Yahoo</a></li> 

</ul> 
<div id="content"></div> 

</body> 
</html> 

感謝您的幫助。

回答

3

這是因爲Same Origin Policy。這是大多數瀏覽器的安全功能。最常見的解決方法是使用JSONP,但由於您期待HTML作爲響應,所以這不適用於您。

您需要使用的是服務器端代理,您可以在PHP/ASP.Net /其他服務器端技術中獲得URL的HTML請求,然後通過本地公開給您的jQuery請求。

相關問題