使用者在嘗試呼叫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 中的自動重定向機制:
找到line:
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 未經授權的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!