不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
sendAndLoad和Redirect的测试
编辑:dnawo 日期:2007-07-23
今天我们来测试下当SWF文件将参数以POST方式传给s1.asp,而s1.asp中有Redirect方法转到s2.asp,s2.asp有Redirect方法转到s3.asp时,SWF返回的是由哪个文件产生的值?
1.测试过程
ActionScript:
s1.asp:
s2.asp:
s3.asp:
SWF中可以看到返回的结果为“/s3.asp mzwu back”,很明显,这个结果是由s3.asp产生的。那我们就可以得出结论:当多个页面中存在Redirect时,SWF返回的将是最终页面产生的值!
2.无需crossdomain.xml的跨域访问
众所周知,SWF要进行跨域访问时,除了发布成EXE格式,就只能在受访服务器上布署crossdomain.xml文件了,但实际上多数情况是我们需要将Flash文件插入到页面中(只能是SWF格式)进行跨域访问,并且受访域我们没有操作权限(无法布署crossdomain.xml文件)!
基于第1点的测试结果,我们可以将SWF文件、s1.asp、s3.asp布署在我们自己的服务器上,s2.asp是受访问域上的文件。我们将上边文件代码稍做修改再次进行测试:
ActionScript:
s1.asp:
s2.asp:
s3.asp:
结果仍是"/s3.asp mzwu back",很明显,我们通过一些方法实现了不需crossdomain.xml的跨域访问!网银在线支付的实现原理其实也就是:企业站点→在线支付接口→企业站点,那用Flash做个支付界面会很难吗?:)
1.测试过程
ActionScript:
复制内容到剪贴板 程序代码
on (release) {
var myvar = new LoadVars();
myvar.s = "mzwu";
myvar.sendAndLoad("s1.asp",myvar,"post");
myvar.onLoad = function(re){
if(re){
t2.text = myvar.url;
}else{
t2.text = "加载失败!";
}
}
}
var myvar = new LoadVars();
myvar.s = "mzwu";
myvar.sendAndLoad("s1.asp",myvar,"post");
myvar.onLoad = function(re){
if(re){
t2.text = myvar.url;
}else{
t2.text = "加载失败!";
}
}
}
s1.asp:
复制内容到剪贴板 程序代码
<%
Response.Redirect("s2.asp?s=" & Request.Form("s"))
Response.Write("url=" & Request.ServerVariables("URL"))
%>
Response.Redirect("s2.asp?s=" & Request.Form("s"))
Response.Write("url=" & Request.ServerVariables("URL"))
%>
s2.asp:
复制内容到剪贴板 程序代码
<%
Response.Redirect("s3.asp?s=" & Request.QueryString("s") & " back")
Response.Write("url=" & Request.ServerVariables("URL"))
%>
Response.Redirect("s3.asp?s=" & Request.QueryString("s") & " back")
Response.Write("url=" & Request.ServerVariables("URL"))
%>
s3.asp:
复制内容到剪贴板 程序代码
<%
Response.Write("url=" & Request.ServerVariables("URL") & " " & Request.QueryString("s"))
%>
Response.Write("url=" & Request.ServerVariables("URL") & " " & Request.QueryString("s"))
%>
SWF中可以看到返回的结果为“/s3.asp mzwu back”,很明显,这个结果是由s3.asp产生的。那我们就可以得出结论:当多个页面中存在Redirect时,SWF返回的将是最终页面产生的值!
2.无需crossdomain.xml的跨域访问
众所周知,SWF要进行跨域访问时,除了发布成EXE格式,就只能在受访服务器上布署crossdomain.xml文件了,但实际上多数情况是我们需要将Flash文件插入到页面中(只能是SWF格式)进行跨域访问,并且受访域我们没有操作权限(无法布署crossdomain.xml文件)!
基于第1点的测试结果,我们可以将SWF文件、s1.asp、s3.asp布署在我们自己的服务器上,s2.asp是受访问域上的文件。我们将上边文件代码稍做修改再次进行测试:
ActionScript:
复制内容到剪贴板 程序代码
on (release) {
var myvar = new LoadVars();
myvar.s = "mzwu";
myvar.sendAndLoad("s1.asp",myvar,"post");
myvar.onLoad = function(re){
if(re){
t2.text = myvar.url;
}else{
t2.text = "加载失败!";
}
}
}
var myvar = new LoadVars();
myvar.s = "mzwu";
myvar.sendAndLoad("s1.asp",myvar,"post");
myvar.onLoad = function(re){
if(re){
t2.text = myvar.url;
}else{
t2.text = "加载失败!";
}
}
}
s1.asp:
复制内容到剪贴板 程序代码
<%
Response.Redirect("http://free.66ip.com/test07/s2.asp?s=" & Request.Form("s"))
Response.Write("url=" & Request.ServerVariables("URL"))
%>
Response.Redirect("http://free.66ip.com/test07/s2.asp?s=" & Request.Form("s"))
Response.Write("url=" & Request.ServerVariables("URL"))
%>
s2.asp:
复制内容到剪贴板 程序代码
<%
Response.Redirect("http://www.mzwu.com/s3.asp?s=" & Request.QueryString("s") & " back")
Response.Write("url=" & Request.ServerVariables("URL"))
%>
Response.Redirect("http://www.mzwu.com/s3.asp?s=" & Request.QueryString("s") & " back")
Response.Write("url=" & Request.ServerVariables("URL"))
%>
s3.asp:
复制内容到剪贴板 程序代码
<%
Response.Write("url=" & Request.ServerVariables("URL") & " " & Request.QueryString("s"))
%>
Response.Write("url=" & Request.ServerVariables("URL") & " " & Request.QueryString("s"))
%>
结果仍是"/s3.asp mzwu back",很明显,我们通过一些方法实现了不需crossdomain.xml的跨域访问!网银在线支付的实现原理其实也就是:企业站点→在线支付接口→企业站点,那用Flash做个支付界面会很难吗?:)
评论: 0 | 引用: 0 | 查看次数: 4580
发表评论
请登录后再发表评论!