我需要你的帮助。
我有一个网站...我们称之为website A
,我试图使用ajax从website B
获取内容(它们不在同一台服务器上)。原因是我的国家有一个互联网提供商,如果您使用此提供商,则无法连接到website B
。但是,每个人都可以连接到website A
。因此,有些客户无法从website B
获取内容。
我的想法是:当您连接到website A
时,会向website B
发出ajax请求以获取内容。问题是ajax
仍然要求向website A
发出请求的人必须能够访问website B
。
website A
的访问者是否可以使用website A
所连接的互联网连接从website B
获取内容,然后通过website A
直接显示?
这是我试图做的,但是没有用 任何帮助将不胜感激。
<script>
jQuery.ajax({
url: 'https://websiteB.com?a=information&id=<?=$id?>',
type: 'GET',
data: {
},
success: function(data){
jQuery('#content').html(data);
},
});
</script>
答案 0 :(得分:-2)
为了从阻止来自希望访问内容的客户端的连接的站点检索内容,但未阻止客户端连接到的服务器,您可以使用website B
简单地获取内容server
来自website A
(allow_url_fopen()
)的PHP,然后将其打印到客户端的屏幕上。
这不允许他们关注链接或其他任何内容,但您可以通过这种方式检索单个页面的内容。
如果您希望镜像整个站点,可以使用apache反向代理(参见第2部分)
同样重要的是要注意,您需要确保true
php.ini
文件中的设置website A
设置为websiteA
在文件get_website_b.php
<?php
$websiteBcontent = file_get_contents( 'http://www.websiteB.com/');
print_r($websiteBcontent);
?>
上
website B
第2部分
要将website A
等整个域镜像到httpd.conf
,您可以在apache <VirtualHost www.websiteA.com:*>
ProxyPreserveHost On
ProxyPass / http://www.websiteB.com/
ProxyPassReverse / http://www.websiteB.com/
ServerName websiteA.com
</VirtualHost>
文件中添加虚拟主机条目
mod_proxy
您还必须确保已加载loadModule
模块,可以使用LAUNCHER
指令加载。
(见https://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule)