Jquery不适用于外部域

时间:2011-08-29 18:33:48

标签: javascript jquery ajax

我在Jquery中有一个函数,尝试从页面获取html:

$.ajax({
  type:'GET',
  url: 'http://www.google.com',
  success: function( data ) {
        alert( data );
  }
});

为什么不起作用? 在firebug中,我看到了通信标题。

3 个答案:

答案 0 :(得分:2)

您违反了SOP。为避免SOP,您可能需要服务器端脚本(在主机上)加载外部URL并将数据返回到客户端脚本,或使用提供JSONP结果的服务。

答案 1 :(得分:0)

好吧,出于安全原因,Javascript不允许页面从外部域加载页面。这些安全原因是为了防止用户进行劫持,xss攻击等。如果您仍想加载外部页面,可以使用iframe,否则您需要在后端使用openId类型的东西。

答案 2 :(得分:0)

由于安全违规,不允许跨域$ .ajax。您可以在jQuery中执行的唯一跨域调用是JSONP请求。

请阅读我对此问题的回答:JavaScript: How do I create JSONP?