2014-01-09 55 views
0

我想使用.ajax來讀取給定網址(int他的案例www.wikipedia.org)的源HTML到文檔的正文中。下面的代碼旨在做到這一點,但它不會返回(可能是錯誤的)預期結果。

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.min.js"> 
</script> 
<script> 
$(document).ready(function() { 
    $.ajax({ 
     url: 'www.wikipedia.org', success: function(data) { 
      $('body').append(data); 
     } 
    }); 
}); 
</script> 
</head> 
<body></body> 
</html> 

沒有人有一個想法,爲什麼它不能正常工作,也許這樣當呈現頁面顯示在文檔正文該鏈接的HTML如何補救?

+5

有一件事:http://? – NewInTheBusiness

+1

'url:'http:// www.wikipedia.org'' – Doorknob

+4

Then Then Origin Policy。 – Musa

回答

0

嘗試前面加上HTTP://的URL,即http://www.wikipedia.org

+1

這將使OP過去原來的問題,然後到相同的來源問題。 – Pointy

+0

如何處理SO問題? –

+0

@JustinGreenough - 這是如何:https://github.com/padolsey/jquery.fn/tree/master/cross-domain-ajax –

0

正如邁克說,你需要添加http://到url的開始。

還有一個同源問題。爲了通過AJAX請求頁面並閱讀結果,通常必須與您在同一個域中。

解決此問題的最佳方法是對請求使用代理。你可以使用setup your own或使用an existing service(如果你願意依賴它)。

+0

是的,我當然想嘗試用http://預先上面的地址,但結果是相同的(我假設,或許是正確的,瀏覽器將首先嚐試一個http類型,就像捲曲一樣)。我將如何設置代理腳本? –

+0

@JustinGreen你必須在服務器上做到這一點。瀏覽器不會讓您從隨機網址獲取內容,除非其他網站通過HTTP標頭明確允許。 – Pointy

+1

@JustinGreenough只是FYI,一個沒有方案的URL被假定爲一個相對URL,例如,'foo'變成了'http:// www.mypage.com/foo','www.wikipedia.org'變成了'http: // www.mypage.com/www.wikipeida.org' – apsillers