一尘不染

JavaScript AJAX跨域调用

javascript

我了解AJAX跨域策略。因此,我不能仅仅通过ajax HTTP请求调用“
http://www.google.com ”,并将结果显示在我的网站上。

我使用dataType“ jsonp”进行了尝试,这实际上可以工作,但是出现语法错误(显然是因为接收到的数据不是JSON格式的)

还有其他可能性可以从外部域接收/显示数据吗?iFrame是否遵循相同的政策?


阅读 269

收藏
2020-04-25

共1个答案

一尘不染

使用AJAX获取跨域数据的唯一(简便)方法是使用服务器端语言作为代理

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']);

就那么简单。请注意,您可以或不能使用已抓取的数据。

2020-04-25