将网站服务嵌入另一个网站的最佳方式

时间:2012-07-29 02:56:38

标签: php asp.net iframe

我正在寻找可以帮助我解决一个独特问题的信息,方法或代码。我的第一个想法是使用iframe,但这似乎是在创建跨站点共享的可能问题。

我有一个网站(https://siteB.com),我想“嵌入”其他网站。它是用ASP.net编写的,使用会话变量,登录安全性,向社交媒体(FB,Twitter)发布消息等。任何社交媒体链接或通过电子邮件发送回siteB.com。

客户网站将是(http(s):// siteA.com)。它们是非营利性网站,使用支付网关进行信用卡交易。由于交易的性质(为了税收目的),信用卡费用必须在siteA.com上管理 - siteB.com无法收集资金(对于这种情况),它不能是“直通”类型的交易。

所有用户的流程是访问siteA.com,使用嵌入式siteB.com中的服务,并使用信用卡进行siteA.com交易。 siteB.com是工作完成的地方,但付款应该转移到siteA.com。总体而言,目标是在siteA.com上为用户创建无缝体验,并将他们的卡交易发送到siteA.com。

iframe的问题:

  1. 来自fb / twitter / email的超链接,查询字符串到iframed siteB.com上的特定页面无效(或无法开始工作)
  2. 跨域共享会话数据是一个问题
  3. 欢迎任何建议,非常感谢。

2 个答案:

答案 0 :(得分:7)

您可以使用对象:

<object type="text/html" data="http://siteB.com" style="width:100%; height:100%">
<p>backup content in case it doesn't work</p>
</object>

并相应调整您的身高和宽度。

或者,您可以使用jQuery,如here所示:

<script>$("#testLoad").load("http://siteB.com/");    
<div id="testLoad"></div>

答案 1 :(得分:1)

尝试使用curl嵌入外部网站并将链接更改为绝对链接。像这样:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.your_external_website.com");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$result = preg_replace("#(<\s*a\s+[^>]*href\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#",'$1http://www.your_external_website.com/$2$3', $result);
echo $result
?>