我无法通过jquery获得这项工作:
<a href="#" onclick='jQuery('#load_url').show(1000).load('http://google.es');'>Google</a>
当我点击此链接时,我需要加载名为#load_url
的div中的url所有时间发生相同的事情,没有负载永远不会url如果我用一个功能测试这个工作,但我需要在链接内工作,此刻我尝试各种事情,永远不会得到正常工作
答案 0 :(得分:0)
是的,问题在于跨域政策。我创建了一个fiddle,它将错误记录到浏览器控制台:Cross-Origin request blocked
。任何你都无法使用iframe
来解决此问题,因为Google阻止了外部框架请求:
Load denied by X-Frame-Options:
https://www.google.es/?gws_rd=ssl does not permit cross-origin framing.
答案 1 :(得分:0)
如果这仅用于测试目的,您可以使用:
function myFunc() {
$.getJSON('http://anyorigin.com/dev/get?url=google.es&callback=?', function(data){
$('#load_url').show(1000).html(data.contents);
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='load_url'></div>
<a href="#" onclick="myFunc()">Google</a>
这使用http://anyorigin.com/绕过同源策略限制。
因此,为了使用它几次,这可行,但正如它在网站上所说的那样,过多的使用会导致你被禁止。
有关绕过政策的方法,请参阅here。
如果在真实的应用程序中,您链接到您网站上的页面,您可以简单地使用之前使用的内容:
<a href="#" onclick="jQuery('#load_url').show(1000).load('localpage.html');">local page</a>
答案 2 :(得分:0)
语法上你的标签不正确,你打破主字符串;用双引号替换外部引号,并使用本地页面(例如,在同一目录中创建一个test.html页面,并尝试加载此页面而不是外部网站):
<a href="#" onclick="jQuery('#load_url').show(1000).load('test.html');">Google</a>