我无法将外部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');
});
谁能帮帮我。
谢谢阿迈勒
发布于 2011-02-21 03:10:59
由于浏览器的限制,大多数Ajax请求都遵循“同源策略”。这意味着在大多数情况下,如果不使用代理、YQL、JSONP或类似的技术来解决这个问题,就不能使用jQuerys ajax方法从外部域获取数据。
一个纯粹的javascript选项是Yahoo的YQL服务。有一个插件扩展了jQuery.ajax
以允许外部域:https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js
使用此插件应该允许在您的问题中使用ajax示例。
另一种选择是使用服务器端代理,然后使用ajax请求该页面。如果你的服务器可以运行PHP,试着用谷歌搜索"php ajax proxy“,你会得到很多结果。
发布于 2012-01-16 18:25:31
首先,下载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);
}
});
}
这对我从外部网站获取内容很有效。
发布于 2011-02-21 03:10:41
$('div#external').html();
将div
对象中的超文本标记语言设置为空字符串。
因为response
是返回的超文本标记语言,所以您的意思可能是:
$(document).ready(function(){
var url = 'http://www.google.com';
$.get(url, function(response) {
$('div#external').html(response);
});
});
jQuery documentation on $.get
提供了一个类似这样的示例。
您的下一个问题将是您试图发出跨域请求。有关如何绕过this site在这方面的安全限制的更多信息,请参见Javascript。
https://stackoverflow.com/questions/5059302
复制相似问题