私のボタンクリックイベントハンドラーはこのようなものです;
$(".imgRefreshContact").click(function () {
$.ajax({
url: "/Presentation/Site/Handlers/RefreshCaptcha.ashx",
type: "POST",
cache: false,
async: true,
success: function () { }
});
$("#imgCaptcha").attr('src', '/Presentation/Site/Handlers/CreateCaptcha.ashx');
});
RefreshCaptcha ハンドラ;
public void ProcessRequest(HttpContext context)
{
context.Session["CaptchaMetin"] = ConfirmCode.GenerateRandomCode();
}
CreateCapthca ハンドラ;
public void ProcessRequest(HttpContext context)
{
ConfirmCode cc = new ConfirmCode(context.Session["CaptchaMetin"].ToString(), 136, 36);
context.Response.Clear();
context.Response.ContentType = "image/jpeg";
cc.Image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
cc.Dispose();
}
img ボタンをクリックすると、Chrome と Firefox では完全に機能しますが、IE 9 では失敗します。デバッガーは RefreshCaptcha ハンドラーに入りますが、CreateCaptcha ハンドラーには入りません。したがって、IE は ajax リクエストを 2 回ではなく 1 回行います。
IEとajaxリクエストの問題は何ですか