2009-06-26 67 views
1

我觉得这是很容易,但我失去了一些东西......jQuery的跨站点获取

使用jQuery,我试图获取远程页面(在不同的服务器上),捕获的HTML内容,并注入将该内容转换为隐藏的DIV。但是,使用$ .ajax或$ .get会导致FireFox中的跨站脚本错误。

有什么建议吗?代码:

$.ajax({ 
    type: 'GET', 
    url: "http://www.remote-url.com", 
    dataType: 'html', 
    success: function(data) { 
     $('#put_here').empty().append(data); 
    } 
}); 

谢谢!

乍得

回答

4

你不能做到这一点 - 在Same Origin Policy防止其出于安全原因(如你发现)。

您需要在您自己的服务器上使用run a proxy script,您的JavaScript用它来代表它从远程服务器获取内容。

0

AJAX不允许跨域提取。你必须让你的服务器从你想从中获取信息的任何服务器中获取。

0

如果您想要跨站点,则无法拉入整个页面。有一种方法可以使用JSONP从跨域网站获取数据。你所做的就是让js将你获得的数据作为一个函数来评估json数据。但是,如果您尝试获取整个页面,则无法工作。

2

或者,您可以使用已有的API(如YQL或Pipes)来访问您之后的数据,然后使用JSONP(跨域可操作)返回结果。