我正在为Magento的欺诈检测服务进行图像重定向。功能的概念是用户点击结账页面,其中使用iframe发送捕获用户设备数据的请求。然后从第三方服务返回一个图像,以显示请求和重定向是否成功。这是我的问题:
我正在使用Nginx和php-fpm。我上面描述的iframe按设计工作。但是,非iframe支持有一个后备,其中使用gif而不是iframe来进行重定向。 gif实际上是一个php文件,我已经配置了Nginx和php-fpm来允许这个文件作为php执行。如果我直接访问gif,重定向工作正常,但当把它作为一个图像放入页面时,我没有得到预期的重定向。
这是logo.gif文件内容
<!DOCTYPE html>
<html>
<head>
<?php
$m = $_GET['m'];
$s = $_GET['s'];
header("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
header("Cache-Control: no-cache");
header('Content-Type: image/gif');
header ("HTTP/1.1 302 Found");
header ("Location: https://3rdpartysite.com/logo.htm?m=$m&s=$s");
?>
</head>
</html>
答案 0 :(得分:1)
您是否可以在结帐时包含iframe和img后备广告的方式?
值得注意的是,HTML 5已经删除了对iframe回退的支持,这可能就是为什么gif根本不被调用的原因:http://www.quackit.com/html_5/tags/html_iframe_tag.cfm
除此之外,为什么不让PHP呈现图像的直接URL而不是依赖于跳过logo.gif?或者使用带有<noscript>
后备的JavaScript。
我不相信logo.gif是问题的根源,因为您已经证明它在直接访问时可以正常工作。问题的根源在于调用范围的实现。