私たちが構築したフッ素統合の一部に、本当に奇妙な問題があります。
キャプチャが付いたフォームがあります。キャプチャ画像は、独創的なタイトルの.Net / AMF WebサービスGetCaptchaImage.ashx
から入力され、Flash内のテキストハイパーリンクから再読み込みできます。
IEの一部のバージョン(特にIE8ですが、他のバージョンの場合もあります)では、 IEバージョンのエミュレーションとwmodeに関係なく、テキストリンクをクリックすると、FluorineゲートウェイへのHTTP呼び出しが正常に行われますが、Webサービスへの呼び出しは行われません。それに従います。Microsoft Fiddlerを使用してHTTPトランザクションを検査すると、次のことがわかります。
POST http://www.domain.com/gateway.aspx
200 OK (application/x-amf)
他には何もありませんが、他のブラウザでは次のように表示されます。
POST http://www.domain.com/gateway.aspx
200 OK (application/x-amf)
GET http://www.domain.com/GetCaptchaImage.ashx
200 OK (image/gif)
呼び出しを行うコードは、オーバーライドなしでから継承されているようorg.osflash.signals.Signal.dispatch
に見えるため、JustBloodyWork™ではない理由がわかりません。実際のメソッド呼び出しは次のようになります。
private function getNewCaptcha(event:MouseEvent):void
{
getCaptchaAgain.dispatch();
trace("Captcha button click");
GlobalDebugger.log(this, "Captcha button click!");
}
ここで、コードベース全体でのその他の言及は次のgetCaptchaAgain
とおりです。
public var getCaptchaAgain:Signal = new Signal();
と
compForm.getCaptchaAgain.add(getTheCaptchaAgain);
そして、他の唯一の出現getNewCaptcha
は次の行です。
_cantReadCaptchaButton.addEventListener(MouseEvent.CLICK, getNewCaptcha);
編集: Juan Pablo Califanoは、への参照があることに気付かなかったと指摘しました。getTheCaptchaAgain
これは、と誤解していましgetCaptchaAgain
た。それは次のように定義されます
private function getTheCaptchaAgain():void
{
captchaSignal.dispatch();
}
onFormResponse
そして、それが面白くないところからのみ呼び出されます。captchaSignal
で定義されています
public class CompetitionFormMediator extends AbstractFactoryAccessorMediator
{
[Inject]
public var captchaSignal:CaptchaSignal;
// ...
}
CaptchaSignal
拡張org.osflash.signals.Signal
され、面白くありませんが、次の行の読み取りで呼び出されます。
signalCommandMap.mapSignalClass(CaptchaSignal, CaptchaCommand);
CaptchaCommand
拡張し、呼び出しSignalCommand
の内部で終了しますflash.events.EventDispatcher
var callFunction:Function = serviceHub.call;
callFunction.apply(serviceHub, collectArgs);
手がかりを提供しない引数のはどこcollectArgs
ですか。Array
編集を終了
いったいなぜその2番目の呼び出しがWebサーバーに到達しないのか誰かが知っていますか?FlashがHTTPを発行しない理由はわかりませんGET
が、同様に、ブラウザー(このブラウザーだけでなく)がHTTPを抑制している理由も考えられません。私はFlash開発者ではありませんが(ここでは.Netチームを運営しています)、奇妙なことは何も見られず、私もFlashチーム(コードを作成した開発者を含む)も、これが発生する理由を考えることはできません。起こっている。
誰かアイデアはありますか?