次のシナリオは、互換表示のない 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 として動作させます。