2013-11-14 20 views
0

我使用jQuery加载方法加载某些页面以获取其元数据;如标题,说明等。因为这似乎是一个简单的方法。jQuery加载方法使状态取消

但是每次使用jQuery方法向任何URL发出请求时,它都会获得取消状态。为什么会发生?这是与浏览器或服务器阻止它有关的东西吗?

我的代码,我现在用的就是:

$('.link').load('http://' +$('#link').val(), function (response, status, xhr) { 
    if (status == 'error') { 
    $('.linkinfo').html('Not a valid link!'); 
    } else { 
    $('.linkinfo').html($(response).filter('title').text()); 
    } 
}); 

造成这种情况的HTML代码是:

<input type="text" id="link" onkeyup="" /> 
<div class="linkinfo"></div> 
<div class="link"></div> 

凡投入将是任何链接,如www.google.comwww.facebook.com的。我只想拿出他们的元数据。但是每次都执行status == 'error'块。

我对使用开发人员工具中的“网络”选项卡进行的每个请求保留一条注释。 Chrome在Chrome中取消并在Mozilla Firefox中临时移动。

+0

我们可以看到输入端的HTML? – Steve

+0

当然可以,它只是一个简单的输入! –

+1

我刚刚意识到:您正尝试出去并获取非本地网站......由于跨域限制,这将无法正常工作。 – Steve

回答

0

可能是一个同源策略

如果你检查了jQuery 负载()方法下其他注意事项

api.jquery.com/load

由于浏览器安全限制,大多数“Ajax”请求都受到相同的源策略的限制;该请求无法成功从不同的域,子域或协议中检索数据。

同源策略:

http://en.wikipedia.org/wiki/Same_origin_policy