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

ASP.NET WebMethod への jQuery AJAX 呼び出しで「401 Unauthorized」エラーが発生するのはなぜですか?

DDD
DDDオリジナル
2025-01-04 08:31:34492ブラウズ

Why Does My jQuery AJAX Call to an ASP.NET WebMethod Result in a

ASP.NET: jQuery AJAX を使用した WebMethod が「401 Unauthorized」エラーを返す

ASP.NET WebForm で WebMethod を呼び出そうとするとjQuery AJAX を使用すると、「401 (Unauthorized)」エラーが発生する場合があります。この問題は、web.config ファイルの認証設定が原因で発生します。

WebMethod は次のように構成されています:

[WebMethod]
public static string GetClients(string searchTerm, int pageIndex)
{
    // ...
    return GetData(cmd, pageIndex).GetXml();
}

そして、jQuery AJAX 呼び出しは次から行われます:

function GetClients(pageIndex) {
    $.ajax({
        type: "POST",
        url: "ConsultaPedidos.aspx/GetClients",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        // ...
    });
}

ただし、web.config ファイルでユーザー認証を有効にすると、

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="/Dashboard" />
</authentication>
<authorization>
    <deny users="?" />
</authorization>

AJAX 呼び出しが前述のエラーで失敗します。

解決策:

この問題を解決するには、2 つの変更が必要です:

  1. ASP.NET 自動名を無効にするリダイレクト:

    • App_Start フォルダー内の RouteConfig.cs ファイルを開きます。
    • 次のように変更します行:

      settings.AutoRedirectMode = RedirectMode.Permanent;

      へ:

      settings.AutoRedirectMode = RedirectMode.Off;
  2. フレンドリー URL パスを修正:

    • フレンドリー URL を有効にする Web サイトの場合、URL jQuery では AJAX 呼び出しは次のようにする必要があります変更済み:

      • 変更:

        url: "ConsultaPedidos.aspx/GetClients"
      • 次:

        url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>'

これらの調整により、 「401 Unauthorized」エラーを引き起こさずに WebMethod にアクセスするための jQuery AJAX 呼び出し。

以上がASP.NET WebMethod への jQuery AJAX 呼び出しで「401 Unauthorized」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。