【问题标题】:Best way to embed a website service into another website将网站服务嵌入另一个网站的最佳方式
【发布时间】:2012-07-29 02:56:37
【问题描述】:

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

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

【问题讨论】:

  • 这个我的朋友,是我们在海军中常用的称呼,汤三明治。你根本没有解释清楚,你所解释的听起来像是开发人员或开发团队试图给客户他们想要的东西而不是说:“不,你要求的不是您需要什么,原因是 x、y 和 z。这是一个更好的解决方案,我们很乐意以可维护、可持续和健全的方式满足您的需求。”
  • 并不是说如果您的站点使用 HTTPS,并且您使用 HTTP 嵌入站点 B,大多数浏览器会将您的站点显示为部分安全,因为站点 B 未使用 HTTPS。

标签: php asp.net iframe


【解决方案1】:

你可以使用一个对象:

<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>

【讨论】:

  • 大卫 - 感谢您的建议。我会尝试它们并报告结果。这就是我一直在寻找的——另一种选择。
【解决方案2】:

尝试使用 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
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2013-05-09
    相关资源
    最近更新 更多