我了解AJAX跨域策略。因此,我不能仅通过ajax HTTP请求调用“ http://www.google.com ”,并将结果显示在我的网站上。
我使用dataType“ jsonp”进行了尝试,这实际上可以工作,但是出现语法错误(显然是因为接收到的数据不是JSON格式的)
还有其他可能性可以从外部域接收/显示数据吗?iFrame是否遵循相同的政策?
使用AJAX获取跨域数据的唯一(简便)方法是使用服务器端语言作为代理,如AndyE所指出的。这是一个小示例,说明如何使用jQuery来实现:
jQuery部分:
$.ajax({ url: 'proxy.php', type: 'POST', data: { address: 'http://www.google.com' }, success: function(response) { // response now contains full HTML of google.com } });
和PHP(proxy.php):
echo file_get_contents($_POST['address']);
就那么简单。只要知道您可以或不能使用已抓取的数据即可。