0

次のシナリオは、互換表示のない IE10 を除くすべての一般的なブラウザーで問題なく動作します。

次のように、アプリケーションで ASP.NET PageMethods を使用しています。

    [System.Web.Services.WebMethod]
    public static string TestItWM(string param1)
    {
        return "This is : " + param1;
    }

関連する JavaScript は次のとおりです。

    function TestIt() {
        var param1 = $("#testWebMethod").val();
        PageMethods.TestItWM(param1, OnSucceeded, OnFailed);
    }
    function OnSucceeded(result, userContext, methodName) {
        alert(result);
    }
    function OnFailed(error, userContext, methodName) {
        alert("error:" + error._message);
    }

上記のサンプルは、Chrome26、FireFox16、IE10-CompatibilityView では問題なく動作しますが、IE10 では動作しません! Fiddler2 を使用すると、すべてのブラウザーで確認できます。IE10 を除いて、要求にはパラメーターが送信され、Web メソッドには何も送信されません。

注: アプリは、サンプル URL を使用して、私のマシンの IIS7.5/Windows7 でローカルにホストされています。

http://localhost/MyApp1/Test.aspx

あなたの助けに感謝します!


Windows 7 での IE10 または .NET 識別のバグのようです。

前に述べたように、管理者として IE10 を実行すると問題が解決します。

そして、クライアントのためにそれを解決するために、次のメタを追加する必要がありました:

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7" />

強制的に IE を最大 9 として動作させます。

4

1 に答える 1