我有一个嵌入网站的产品类似于Paypal(客户将我的按钮添加到他们的网站,用户点击此按钮,一旦服务完成,我将他们重定向回原始网站。)
我想向客户演示我的技术而不实际修改他们的实时网站。为此,是否可以配置http://stackoverflow.myserver.com/,以便在无缝注入我的按钮时镜像http://www.stackoverflow.com/?
意思是,我想演示在实时网站上使用我的按钮的体验,而不是在我的服务器上实际重新托管客户的数据库。
我知道这里有安全问题,所以只要我们符合要求,请随时提及。我不需要为使用HTTPS的网站演示此内容。
更具体地说,,我想通过在页面中注入Paypal按钮来展示Stackoverflow问题的财务奖励。如何在不修改http://stackoverflow.myserver.com/的情况下https://stackoverflow.com/演示此内容?
请求重新审核:我已根据您的要求对问题进行了重新编写。如果您仍然认为它过于宽泛,请通过在下面发表评论来帮助我理解您的推理。
更新:我在How to rewrite URLs referenced by Javascript code?发布了后续质询
UPDATE2 :我放弃了bookmarklet和Greasemonkey的想法,因为它们需要客户端安装/修改。我们需要尽可能无缝地完成这个过程,否则很多过程会被这个过程关闭,不会让我们投球。
答案 0 :(得分:3)
我建议使用HTTP handler创建代理。
在ProcessRequest
中,您可以执行HttpWebRequest
获取另一方的内容,更改内容并将调整后的html返回给浏览器。您可以重写内部的URL以允许从原始源加载图像等。
public void ProcessRequest(HttpContext context)
{
// get the content using HttpWebRequest
string html = ...
// alter it
// write back the adjusted html
context.Response.Write(html);
}
答案 1 :(得分:1)
如果您在客户端进行演示并希望快速入侵它,您可以使用一些jQuery来实现它。我只是为了演示而在SO标志后打了一下按钮。您可以在控制台中输入:
$('head').append('<script src="https://www.paypalobjects.com/js/external/dg.js" type="text/javascript"></script>')
$('#hlogo').append('<form action="https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay" target="PPDGFrame" class="standard"><label for="buy">Buy Now:</label><input type="image" id="submitBtn" value="Pay with PayPal" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynowCC_LG.gif"><input id="type" type="hidden" name="expType" value="light"><input id="paykey" type="hidden" name="paykey" value="insert_pay_key">')
var embeddedPPFlow = new PAYPAL.apps.DGFlow({trigger: 'submitBtn'});
现在,我不确定我是否做错了,因为我在最后一部分出现了这个错误:
Expected 'none' or URL but found 'alpha('. Error in parsing value for 'filter'. Declaration dropped.
但无论如何,如果你正在演示你可以这样做,也许作为一个计划B.(你也可以写一个用户脚本,所以你不必打开控制台,我猜?) / p>
答案 2 :(得分:-1)
在玩了很长时间后,我最终做了以下事情:
<base>
标记,指向要重定向的网站。这将导致浏览器自动将相对链接(在HTML文件,CSS文件甚至Flash!中)重定向到原始网站。这听起来比实际上要困难得多。平均而言,修补每个页面的工作时间不到5分钟。
重大发现是<base>
标签!它代表我纠正了绝大多数链接。