是否可以通過jQuery加載方法將我的頁面的外國網站加載到我的頁面的div
?jQuery加載方法:加載外域?
$('#content').load('http://www.somedomain.com/server/whatever/file.php');
這不適合我!
是否可以通過jQuery加載方法將我的頁面的外國網站加載到我的頁面的div
?jQuery加載方法:加載外域?
$('#content').load('http://www.somedomain.com/server/whatever/file.php');
這不適合我!
您可能可以使用基於PHP的代理腳本解決@Giorgi描述的安全限制。
proxy.php
<?php
if(isset($_GET['url'])) {
# Get the Referred URL
$raw = file_get_contents($_GET['url']);
# RegExp to Strip All Script tags and/or links with Javascript in them.
$safe = preg_replace('/<script[^>]*>.*<\/script>|[\"\']javascript:.*[\"\']/im' , '' , $raw);
echo $safe;
} else {
echo 'No URL Set';
}
然後使用jQuery的負載動作調用等proxy.php網頁?URL = HTTP%3A // www.google.com/
不,preg_replace()
行動只是一個粗略的草案 - 你會想做一些重大的測試和調整,以確保你防止人們以這種方式搞亂你的網站。
你不能因瀏覽器的安全限制。 使用代理。
由於@Giorgi說,跨站呼叫阻塞常由於安全限制。但是,如果遠程站點返回JSONP,呼叫很可能會起作用。
對於其他呼叫,您必須在您自己的網站上的某個頁面上呼叫。而這個頁面可能是一個代理,它取代了後端請求的url。
$('#content').load('/myproxy.handler?url=http://www.somedomain.com/server/whatever/file.php');
出於安全原因(例如XSS),我不認爲通用代理是一個好的解決方案。這可能是一個更好的解決方案: /myproxy.handler?action=GetWhateverData然後代理處理程序知道該URL: – 2010-07-20 07:16:31
是否有可能使用jQuery加載與相同的URL的SUBDOMAIN?如果負載在http://www.mydomain.com上觸發,我可以加載http://hello.mydomain.com/hello.php? – matt 2010-07-21 02:20:21
這是可能的,它涉及到設置document.domain =「yourdomain.com」。有關更多信息和示例,請參閱http://www.tomhoppe.com/index.php/2008/03/cross-sub-domain-javascript-ajax-iframe-etc/。 – 2010-07-21 06:32:40
你的意思是通過搞亂我的網站? – matt 2010-07-21 02:03:08
跨站點腳本 - http://en.wikipedia.org/wiki/Cross-site_scripting。如果在您打電話的第三方頁面中出現JavaScript,可能會觸發它,就像它來自您的網站一樣,這可能會降低安全性。 – 2010-07-21 05:28:58