简体   繁体   English

在某些IE版本中未提出氟要求

[英]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.

相关问题 是否有某种属性可以告诉我是否正在发出请求? - Is there any sort of property that tells me if a request is being made? 版本请求失败,错误由版本点引起? - version request fail error by versions dots? 在发行和调试中使用了不同版本的AIR和Flash - Different versions of AIR and Flash being used in release and debug 我希望舞台每次对某些对象进行一些更改时都做出反应。 有没有办法编写自定义事件? - I want the stage to react every time some changes are made to certain objects. Is there a way to write custom Event? 当字符串中包含一些十六进制时,ActionScript中的String的MD5返回错误的结果(即“ abc \\ xBF \\ x4E”) - MD5 of String in ActionScript returning incorrect results when some hex is part of the string( ie“abc\xBF\x4E”) 一个代码库适用于2个版本 - One codebase for 2 versions 如何修改已经制作的补间? - How to modify a already made tween? 在动作脚本2中加载动作脚本3制作swf - load actionscript 3 made swf in actionscript 2 将在AS3中制作的SWF电影导入到AS2制作的SWF电影中是否有问题? - Is there a problem with importing a SWF movie made in AS3 into a SWF movie made in AS2? 为什么Flash可以在IE 9中运行而不能在IE 11中运行? - Why would Flash work in IE 9 but not in IE 11?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM