[英]Fluorine request not being made in some IE versions
We have a really strange problem with a piece of Fluorine integration we've built. 我们已经建立了一个氟集成模块,这确实是一个非常奇怪的问题。
We have a form with a Captcha on it; 我们有一个带有验证码的表格; the Captcha image is populated from a .Net/AMF webservice inventively titled
GetCaptchaImage.ashx
and can be reloaded from a text hyperlink within the Flash. Captcha图像是从.Net / AMF网络服务填充的,该网络服务创造性地命名为
GetCaptchaImage.ashx
并且可以从Flash中的文本超链接重新加载。
In some versions of IE (particularly IE8, but it may also be others), irrespective of IE version emulation and wmode , clicking the text link causes the HTTP call to our Fluorine gateway successfully to be made, but the call to the webservice does not follow it. 在IE的某些版本中(尤其是IE8,但也可能是其他版本 ), 无论IE版本仿真和wmode如何 ,单击文本链接都会导致对我们的Fluorine网关的HTTP调用成功完成,但对Webservice的调用没有成功跟着它。 Inspecting the HTTP transactions with Microsoft Fiddler , we see:
使用Microsoft Fiddler检查HTTP事务,我们看到:
POST http://www.domain.com/gateway.aspx
200 OK (application/x-amf)
and nothing else, whereas in any other browser we see: 没什么,而在其他浏览器中,我们看到:
POST http://www.domain.com/gateway.aspx
200 OK (application/x-amf)
GET http://www.domain.com/GetCaptchaImage.ashx
200 OK (image/gif)
The code that makes the call appears to be inherited, without any override, from org.osflash.signals.Signal.dispatch
, so I can't see why it wouldn't Just Bloody Work™. 进行该调用的代码似乎是从
org.osflash.signals.Signal.dispatch
继承而来的,没有任何覆盖,因此我看不到为什么它不只是Bloody Work™。 The actual method call reads: 实际的方法调用为:
private function getNewCaptcha(event:MouseEvent):void
{
getCaptchaAgain.dispatch();
trace("Captcha button click");
GlobalDebugger.log(this, "Captcha button click!");
}
where the only other mentions of getCaptchaAgain
in the entire codebase are: 在整个代码库中,对
getCaptchaAgain
其他唯一提及是:
public var getCaptchaAgain:Signal = new Signal();
and 和
compForm.getCaptchaAgain.add(getTheCaptchaAgain);
and the only other occurrence of getNewCaptcha
is the line: 而
getNewCaptcha
的唯一其他出现是该行:
_cantReadCaptchaButton.addEventListener(MouseEvent.CLICK, getNewCaptcha);
Edit: Juan Pablo Califano pointed out I'd failed to notice that there was a reference to getTheCaptchaAgain
, which I'd misread as getCaptchaAgain
. 编辑: Juan Pablo Califano指出我没有注意到有对
getTheCaptchaAgain
的引用,但我将其误读为getCaptchaAgain
。 It is defined as 定义为
private function getTheCaptchaAgain():void
{
captchaSignal.dispatch();
}
and is only called from onFormResponse
, where it is uninteresting. 且仅从
onFormResponse
,在此并不onFormResponse
。 captchaSignal
is defined in captchaSignal
在
public class CompetitionFormMediator extends AbstractFactoryAccessorMediator
{
[Inject]
public var captchaSignal:CaptchaSignal;
// ...
}
CaptchaSignal
extends org.osflash.signals.Signal
and is uninteresting but is called in a line reading: CaptchaSignal
扩展了org.osflash.signals.Signal
,虽然没有意思,但是在以下行中被调用:
signalCommandMap.mapSignalClass(CaptchaSignal, CaptchaCommand);
CaptchaCommand
extends SignalCommand
and ends up inside flash.events.EventDispatcher
calling CaptchaCommand
扩展SignalCommand
并最终在flash.events.EventDispatcher
调用内
var callFunction:Function = serviceHub.call;
callFunction.apply(serviceHub, collectArgs);
where collectArgs
is an Array
of arguments that don't offer any clues. 其中
collectArgs
是不提供任何线索的参数Array
。
End edit 结束编辑
Does anyone have any idea why on earth that second call wouldn't be making it to the webserver? 有谁知道为什么第二个呼叫不会发送到网络服务器? I can't see why the Flash wouldn't be issuing the HTTP
GET
but, equally, I can't think of any reason why a browser (let alone just this browser) would be suppressing it. 我不明白为什么Flash不会发布HTTP
GET
但同样,我也无法想到为什么浏览器(更不用说这个浏览器)会抑制它了。 I'm not a Flash developer (I run the .Net team here), but I can't see anything odd there and neither I nor the Flash team (including the developer who built the code) can think of any reason why this might be happening. 我不是Flash开发人员(我在这里运行.Net团队),但是我看不到任何奇怪的东西,而且我和Flash团队(包括构建代码的开发人员)都无法想到这可能的任何原因正在发生。
Any ideas anyone? 有任何想法吗?
After all that, it looks like it was a problem elsewhere in the Flash, and the handler in question ( /GetCaptchaImage.ashx
) being considered unchanged by the browser. 毕竟,这似乎是Flash中其他地方的问题,浏览器认为相关的处理程序(
/GetCaptchaImage.ashx
)保持不变。
So we've solved the problem with caching settings, rather than needing to do much else. 因此,我们已经解决了缓存设置问题,而不需要做很多其他事情。
Thanks for your help everyone, particularly Juan Pablo ! 感谢大家的帮助,尤其是Juan Pablo !
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.