jQuery AJAX で WebMethod を呼び出すときに ASP.NET で "401 (Unauthorized)" が発生しました
ASP.NET Webform で WebMethod を呼び出すときに発生しました " 401 (不正)」エラー、これは一般的な問題です。この記事では、この問題の潜在的な原因を調査し、解決策を提供します。
解決策
元の質問で示された解決策は、~/App_Start/RouteConfig.cs ファイルを変更し、次の行を置き換えることです
settings.AutoRedirectMode = RedirectMode.Permanent;
settings.AutoRedirectMode = RedirectMode.Off;
に変更するか、この行をコメントアウトします。フレンドリ URL が有効な場合は、次の行
url: "ConsultaPedidos.aspx/GetClients",
を
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
Analysis
"401 (Unauthorized) に変更する必要もあります。 )" このエラーは、サーバーがクライアントのリクエストを認証できないことを示します。 ASP.NET では、WebForms ページはデフォルトでフォーム認証を使用し、ユーザーが認証されていない場合は自動的にログイン ページにリダイレクトされます。
~/App_Start/RouteConfig.cs ファイルの settings.AutoRedirectMode 設定は、要求された URL が存在しない場合のリダイレクトの処理方法を指定します。デフォルト値は RedirectMode.Permanent です。これは、ログイン ページへのリダイレクトが永続的であり、クライアントが認証されていても元の URL にアクセスできないことを意味します。この設定を RedirectMode.Off に変更するか、この行をコメントアウトして自動リダイレクトを無効にします。
さらに、フレンドリー URL が有効になっている場合、jQuery AJAX リクエストはクライアント相対 URL (例: "ConsultaPedidos.aspx/GetClients") を使用します。これにより、サーバーはリクエストを解析できなくなり、「401 (Unauthorized)」エラーが返されます。 ResolveUrl メソッドを使用して相対 URL を絶対 URL に変換すると、この問題を解決できます。
以上がjQuery AJAX を使用して ASP.NET WebMethod を呼び出すときに「401 (Unauthorized)」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。