【发布时间】:2012-04-14 03:09:03
【问题描述】:
我需要通过 ajax 从其他网站加载内容。下面的代码仅适用于 localhost url,但不能打开 google.com 之类的 url
$.ajax({
url: urlLeft,
crossDomain:true,
success: function(data){
var loadedId = createLoadedPage();
data = data.replace(/<script.*?>|<\/script>/mgi,'');
data = data.replace(/.*<body.*?>|<\/body>.*/gi,'');
$('#'+loadedId).html(data)
$('#content_left').html($('#'+loadedId+' #snapwrap_outer').html());
removeLoadedPage(loadedId);
},
dataType: 'html'
});
【问题讨论】:
-
我不确定,但我认为 crossDomain 的工作方式是您的网站服务器应该执行重定向到所需的 url。
-
解决方案必须考虑您在远程服务器上的权限。您不能使用 ajax 向不同的域发出请求,除非您可以控制修改服务器应答(标头)以允许您使用远程资源。一种解决方案是使用中间人脚本,一种类似于代理的机制来调用本地 ajax 调用并使用 cURL 之类的东西检索远程源。