首頁 > 後端開發 > C++ > 為什麼使用 jQuery AJAX 呼叫 ASP.NET WebMethod 時會收到 401 未經授權的錯誤?

為什麼使用 jQuery AJAX 呼叫 ASP.NET WebMethod 時會收到 401 未經授權的錯誤?

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。錯誤訊息通常顯示為「驗證失敗。」

後台

WebMethod 在WebForm 中宣告為:

[WebMethod]
public static string GetClients(string searchTerm, int pageIndex) { /*...*/ }
登入後複製

但是,在使用下列方式呼叫WebMethod 時:

$.ajax({ /*...*/
    url: "ConsultaPedidos.aspx/GetClients",
    /*...*/
});
登入後複製

瀏覽器回應401 Unauthorized錯誤。

解決方案

此問題的解決方案涉及停用 ASP.NET 中的自動重定向機制:

  1. 導航到 ~/App_Start/RouteConfig.cs。
  2. 找到line:

    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 未經授權的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板