Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跨域/不同域获取src';s HTML内容_Html_Iframe_Cross Domain - Fatal编程技术网

跨域/不同域获取src';s HTML内容

跨域/不同域获取src';s HTML内容,html,iframe,cross-domain,Html,Iframe,Cross Domain,假设我有example.html,里面有一个代码 <iframe src="x.com" id="x"></iframe> 从x.com,我想把所有的东西都放进去 <div class="content">...</div> 。。。 放入example.html中 <div class="xCodes">ONTO HERE</div> 转到这里 因此,我试图让x.com中的元素显示在example.html上

假设我有example.html,里面有一个代码

<iframe src="x.com" id="x"></iframe>

从x.com,我想把所有的东西都放进去

<div class="content">...</div> 
。。。
放入example.html中

<div class="xCodes">ONTO HERE</div>
转到这里
因此,我试图让x.com中的元素显示在
example.html
上,我听说由于跨域问题无法访问它们

我想知道是否有其他方法可以将HTML标记从
x.HTML
检索到
example.HTML

可能不使用

源于:

$.ajax({
    url: 'http://x.com/x.html',
    type: 'GET',
    success: function(res) {
        var data = $(res.responseText).find('.content').text();
        $('.xCodes').html(data);
    }
});

如果我理解正确,您希望从一个站点上的DIV中删除内容并在另一个站点上显示。这有几个问题,但我将重点放在技术方面,并假设您在拉动内容时是真诚的

这里遇到的真正问题是,您无法访问尚未加载的页面的DOM元素。因此,您需要告诉浏览器加载该页面的数据,以便您可以访问本应加载到该页面上的元素,然后拉出信息。JQuery有一个很好的小方法来帮助实现这个调用.load()()

但是,作为一个重要的补充说明,您不能这样做,因为所有现代broswers都禁止以这种方式进行跨站点访问:

从JQuery.load()页面:

补充说明: 由于浏览器的安全限制,大多数“Ajax”请求都受同源策略的约束;请求无法从其他域、子域或协议成功检索数据

并查看:

还有一点警告。如果您不能控制其他站点上的代码,那么您可能会面临严重的安全问题,因此只有在您可以控制其他站点或者出于某种原因对该站点有绝对信任的情况下才可以这样做。或者,如果可用,您应该尝试为您试图从中获取数据的站点/服务使用API

$.ajax({
    url: 'http://x.com/x.html',
    type: 'GET',
    success: function(res) {
        var data = $(res.responseText).find('.content').text();
        $('.xCodes').html(data);
    }
});