2012-05-31 145 views
0

爲什麼這個簡單的ajax顯示一個警告與「錯誤」?jQuery get返回錯誤

<script type="text/javascript" src="js/jquery-1.7.2.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $.ajax({ 
       url: "http://www.google.com", 
       success: function(data) { alert(data); }, 
       error: function(req, err) { alert(err);} 
     }); 
}); 
</script> 
+4

可能是跨域請求的問題。查看它,有很多關於這個主題的帖子和在線問題。 – Styxxy

+0

@Styxxy。沒有「可能」:) – fcalderan

+0

是的,但你理論上可能會有另一個問題;但看到這個代碼幾乎可以確定跨域問題:P。 – Styxxy

回答

2

你不能直接用javascript做這件事,但如果你使用的是服務器,還有其他的方法可以做到這一點。

JavaScript部分:

<script type="text/javascript" src="js/jquery-1.7.2.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.ajax({ 
      url: "http://yourserver/geturl.php?url=http://www.google.com", 
      // or url: "http://yourserver/geturl.aspx?url=http://www.google.com", 
      success: function(data) { 
       alert(data);  
      }, 
      error: function(req, err) { 
       alert(err); 
      } 
     }); 
    }); 
</script> 

服務器一部分(geturl.php):

<?php 
    echo file_get_contents($_GET["url"]); 
?> 

或asp.net相同的邏輯。

關鍵部分就在這裏,代碼運行javascript和php(aspx)應該在同一個域中。

+0

謝謝,getJSON呢?我應該能夠從任何域獲取數據,如果我添加「回調=?」到網址? – grexor

+0

這個問題在這裏得到了更詳細的解答:http://stackoverflow.com/questions/760993/jquery-getjson-cross-domain-problems –