ASP.NET:使用jQuery AJAX 的WebMethod 傳回「401 未經授權」錯誤
嘗試在ASP.NET WebForm 中呼叫WebMethod時使用jQuery AJAX,可能會遇到「401(未經授權)」錯誤。此問題是由於 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 呼叫失敗並出現上述錯誤。
解決方案:
要解決此問題,需要進行兩項修改:
停用ASP. NET 自動命名重新導向:
更改以下內容行:
settings.AutoRedirectMode = RedirectMode.Permanent;
至:
settings.AutoRedirectMode = RedirectMode.Off;
友善URL 路徑:
url: "ConsultaPedidos.aspx/GetClients"
url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>'
以上是為什麼我的 jQuery AJAX 呼叫 ASP.NET WebMethod 會導致「401 未經授權」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!