在我的網站上,我試圖編寫一個JavaScript腳本,當點擊一個按鈕時,它會從某些網站的HTML源代碼中提取數據,並在我的網站上顯示已解析/已清理的數據。如果URL只有「一條HTML線」,jQuery.load()如何工作跨域?
在閱讀TutorialsPoint's JQuery - Ajax page,展示了jQuery.load()方法,
<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#driver").click(function(event){
$('#stage').load('/jquery/result.html');
});
});
</script>
我決定嘗試一下我的網站上。我將網址從相對網址改爲絕對網址 - 「http://www.tutorialspoint.com/jquery/result.html」 - 令我驚訝的是,它實際上正在運行(點擊提取數據)。這與我的理解矛盾,在閱讀數十個SO線程以及jQuery.load()API時,HTTP請求將受制於同源策略。
由於瀏覽器安全限制,大多數「Ajax」請求都受到相同的源策略的限制;該請求無法成功從不同的域,子域,端口或協議中檢索數據。 〜API
當我改變像http://google.com/或http://www.example.com/腳本不起作用的URL的東西。
的aforereferenced教程頁的行吸引了我的眼球:
這裏的load()發起一個Ajax請求到指定的URL /jquery/result.html文件。加載這個文件後,所有的內容都會被標記爲ID階段。 假設,我們/jquery/result.html文件只有一個HTML行
怎麼來的負載()的作品,跨域,如果在指定的URL的HTML文件有單獨一條線?
這取決於服務器。如果服務器允許:'Access-Control-Allow-Origin:*'那麼它可以工作。 –
Downvoters請解釋。我的問題沒有看到任何天生的錯誤。 –
嘿,這可能是因爲他們的投票被鎖定了。我編輯了問題並添加了投票。很快它就會熄滅。現在是0。 –