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

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

Mary-Kate Olsen
發布: 2025-01-03 06:50:46
原創
706 人瀏覽過

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中文網其他相關文章!

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