首頁 >後端開發 >C++ >為什麼在使用 jQuery AJAX 呼叫 ASP.NET WebMethod 時會出現「401(未經授權)」錯誤?

為什麼在使用 jQuery AJAX 呼叫 ASP.NET WebMethod 時會出現「401(未經授權)」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-03 06:50:46714瀏覽

Why Am I Getting a

ASP.NET 呼叫WebMethod with jQuery AJAX 出現"401 (Unauthorized)"

在ASP.NET Webform 中呼叫WebMethod 時遇到"401 (Unauthorized)" 錯誤,這是常見的問題。本文將探討導致此問題的潛在原因並提供解決方案。

解決方案

原問題中給出的解決方案是修改~/App_Start/RouteConfig.cs 文件,將以下行

settings.AutoRedirectMode = RedirectMode.Permanent;

改為

settings.AutoRedirectMode = RedirectMode.Off;

或註解掉此行。如果啟用了友善URL,還需要將以下行

url: "ConsultaPedidos.aspx/GetClients",

改為

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

分析

"401 (Unhorhorized)"錯誤表示伺服器無法驗證客戶端的請求。在 ASP.NET 中,WebForms 頁面預設使用 Forms 驗證,當使用者未通過驗證時會自動重新導向到登入頁面。

~/App_Start/RouteConfig.cs 檔案中 settings.AutoRedirectMode 設定指定當要求的 URL 不存在時如何處理重新導向。預設值為 RedirectMode.Permanent,這表示將永久重新導向到登入頁面,即使用戶端已經通過驗證也無法存取原始 URL。將此設定變更為 RedirectMode.Off 或註解掉此行可停用自動重定向。

此外,如果啟用了友善 URL,則 jQuery AJAX 請求將使用客戶端相對 URL(例如 "ConsultaPedidos.aspx/GetClients")。這會導致伺服器無法解析請求,並傳回 "401 (Unauthorized)" 錯誤。使用 ResolveUrl 方法將相對 URL 轉換為絕對 URL 可以解決此問題。

以上是為什麼在使用 jQuery AJAX 呼叫 ASP.NET WebMethod 時會出現「401(未經授權)」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn