ユーザーが WebMethod を呼び出そうとすると、認証エラー (401) が発生するjQuery AJAX を使用した ASP.NET。通常、エラー メッセージは「認証に失敗しました。」と表示されます。
WebMethod は WebForm 内で次のように宣言されます。
[WebMethod] public static string GetClients(string searchTerm, int pageIndex) { /*...*/ }
ただし、次のように WebMethod を呼び出すと、次のようになります。
$.ajax({ /*...*/ url: "ConsultaPedidos.aspx/GetClients", /*...*/ });
ブラウザは 401 Unauthorized で応答しますerror.
この問題の解決策には、ASP.NET の自動リダイレクト メカニズムを無効にすることが含まれます:
行:
settings.AutoRedirectMode = RedirectMode.Permanent;
に変更します:
settings.AutoRedirectMode = RedirectMode.Off;
または、行をコメントアウトすることもできます。
追加変更:
アプリケーションでフレンドリ URL が有効になっている場合は、次も変更する必要があります:
url: "ConsultaPedidos.aspx/GetClients",
を次のように変更します:
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
説明:
デフォルトでは、ASP.NET は未承認の要求をログイン ページに自動的にリダイレクトします。この動作を無効にすると、WebMethod 呼び出しを続行できるようになります。
以上がjQuery AJAX を使用して ASP.NET WebMethod を呼び出すときに 401 Unauthorized エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。