无法将带有jQuery.load的外部页面加载到我的页面中的div中

Ama*_*r S 16 jquery load external

我无法将外部html页面加载到页面中的div中.

我的Jquery代码是:

$(document).ready(function(){
     var url = 'http://www.google.com';
     $.get(url, function(response) {
          $('div#external').html(response);
     });
 });
Run Code Online (Sandbox Code Playgroud)

我的HTML页面是

<html><body><div id="external"></div></body></html>
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用另一个JQuery代码

$(document).ready(function() {
    $('#external').load('http://google.com');
});    
Run Code Online (Sandbox Code Playgroud)

有谁可以帮助我.

谢谢Amal

Dav*_*ing 16

由于浏览器的限制,大多数Ajax请求都受"同源策略"的约束.这意味着在大多数情况下,您无法使用jQuerys ajax方法从外部域获取数据,而无需使用Proxy,YQL,JSONP或等效技术来解决此问题.

纯javascript选项是Yahoo的YQL服务.有一个插件扩展jQuery.ajax到允许外部域:https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js

使用此插件应该允许您的问题中的ajax示例.

另一种选择是使用服务器端代理,然后使用ajax请求该页面.如果您的服务器可以运行PHP,请尝试使用Google搜索"php ajax proxy"之类的内容,您将获得大量结果.


Ama*_*r S 7

首先下载JS文件https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js 并在页面中包含js文件.下面是我用来加载外部页面的功能.

       function test () {
         $.ajax({
           url: 'http://external_site.com',
           type: 'GET',
           success: function(res) {
             var content = $(res.responseText).text();
             alert(content);
           }
         });
       }
Run Code Online (Sandbox Code Playgroud)

这对我来说是从外部网站获取内容的.