ホームページ > バックエンド開発 > C++ > jQuery AJAX を使用して ASP.NET WebMethod を呼び出すときに 401 Unauthorized エラーが発生するのはなぜですか?

jQuery AJAX を使用して ASP.NET WebMethod を呼び出すときに 401 Unauthorized エラーが発生するのはなぜですか?

Susan Sarandon
リリース: 2025-01-05 13:28:41
オリジナル
387 人が閲覧しました

Why Am I Getting a 401 Unauthorized Error When Calling an ASP.NET WebMethod with jQuery AJAX?

ASP.NET および jQuery AJAX での不正な WebMethod 呼び出し

問題の説明

ユーザーが WebMethod を呼び出そうとすると、認証エラー (401) が発生するjQuery AJAX を使用した ASP.NET。通常、エラー メッセージは「認証に失敗しました。」と表示されます。

Background

WebMethod は WebForm 内で次のように宣言されます。

[WebMethod]
public static string GetClients(string searchTerm, int pageIndex) { /*...*/ }
ログイン後にコピー

ただし、次のように WebMethod を呼び出すと、次のようになります。

$.ajax({ /*...*/
    url: "ConsultaPedidos.aspx/GetClients",
    /*...*/
});
ログイン後にコピー

ブラウザは 401 Unauthorized で応答しますerror.

解決策

この問題の解決策には、ASP.NET の自動リダイレクト メカニズムを無効にすることが含まれます:

  1. ~/App_Start/RouteConfig.cs に移動します。
  2. 行:

    settings.AutoRedirectMode = RedirectMode.Permanent;
    ログイン後にコピー
  3. に変更します:

    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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート