4

我正在寻找可以帮助我解决独特问题的信息、方法或代码。我的第一个想法是使用 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. 跨域共享会话数据是一个问题

欢迎提出任何建议并非常感谢。

4

2 回答 2

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,如下所示

<script>$("#testLoad").load("http://siteB.com/");    
<div id="testLoad"></div>
于 2012-07-29T03:03:17.020 回答
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
?>
于 2012-07-29T04:13:58.707 回答