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

发布于 2024-10-18 10:23:52 字数 556 浏览 2 评论 0原文

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

我的 Jquery 代码是:

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

我的 HTML 页面是

<html><body><div id="external"></div></body></html>

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

$(document).ready(function() {
    $('#external').load('http://google.com');
});    

任何人都可以帮助我。

谢谢 阿迈勒

I am not able to load an external html page into a div in my page.

My Jquery Code is:

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

My HTML page is

<html><body><div id="external"></div></body></html>

I also tried using another JQuery code

$(document).ready(function() {
    $('#external').load('http://google.com');
});    

Could anyone please help me.

Thanks
Amal

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

春夜浅 2024-10-25 10:23:52

由于浏览器的限制,大多数 Ajax 请求都受到“同源策略”的约束。这意味着在大多数情况下,如果不使用代理、YQL、JSONP 或等效技术来解决此问题,则无法使用 jQuery 的 ajax 方法从外部域获取数据。

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

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

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

Due to browser restrictions, most Ajax requests are subject to the "same origin policy". That means that in most cases, you can’t use jQuerys ajax methods to fetch data from external domains without using a Proxy, YQL, JSONP or equivalent technique to get around this.

A pure javascript option is Yahoo’s YQL service. There is a plugin that extends jQuery.ajax to allow external domains: https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js

Using this plugin should allow the ajax example in your question.

Another option is to use a server-side proxy and then request that page using ajax. If your server can run PHP, try googling for something like "php ajax proxy" and you’ll get plenty results.

内心荒芜 2024-10-25 10:23:52

首先下载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);
           }
         });
       }

这对我从外部网站获取内容很有用。

First download the JS file https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js and include the js file in your page. Below is the function that I used to load the external page.

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

This worked for me getting content from external site.

纸伞微斜 2024-10-25 10:23:52

$('div#external').html();div 对象内的 HTML 设置为空字符串。

由于 response 是返回的 HTML,您可能的意思是:

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

jQuery 关于 $.get 提供了这样的示例。

您的下一个问题将是您尝试发出跨域请求。请参阅此网站,了解有关如何绕过 Javascript 在该领域的安全限制的更多信息。

$('div#external').html(); sets the HTML inside your div object to the empty string.

As response is the returned HTML, you probably meant:

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

The jQuery documentation on $.get provides an example like this.

Your next problem will be that you are attempting to make a cross-domain request. See this site for more information on how to get around Javascript's security restrictions in this area.

书间行客 2024-10-25 10:23:52

由于同源政策,您只能向域外发送请求。 JSONP 是一种解决方法,可能会有所帮助。

Due to same origin policy you are pretty limited to sending requests outside your domain. JSONP is a work around, may be it'll help.

茶花眉 2024-10-25 10:23:52

为了绕过跨域限制,
尝试使用 jQuery.getJSON(使用 JSONP)。

jQuery.getJSON(url, function(data){
     // your code here
         $('div#external').html(data);      
     });

PS:但是你的 url 变量应该包含这样的回调函数:
“http://www.example.com/?t="+v+"&callback=?

in order to bypass cross -domain restriction,
try jQuery.getJSON instead (using JSONP).

jQuery.getJSON(url, function(data){
     // your code here
         $('div#external').html(data);      
     });

P.S.: but your url variable should include callback function like this:
"http://www.example.com/?t="+v+"&callback=?"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文