Ajax在jQuery中返回错误401(“未授权”)

本文关键字:授权 未授权 jQuery 返回 错误 Ajax | 更新日期: 2023-09-27 18:27:37

这里是新手。我对Ajax有意见。情况是这样的:我有一个多选择的管理层下拉列表,我想把这些管理层的经理带到另一个下拉列表上(我没有完成)。在这里,我调用函数并发送选定的值:

    getManagersByManagement($("#ddlManagement").val());

目前,我希望它从JsonGridDataProvider.svc.上的GetManagers返回数据

    function getManagersByManagement(managementIds) {
            $.ajax({
                type: "GET",
                contentType: "application/json; charset=utf-8",
                url: "../../JsonGridDataProvider.svc/GetManagers",
                data: { 'Id': JSON.stringify(managementIds) },
                dataType: "json",
                success: function (data) {
                    $.jStorage.set($rpt.pageIdentifier + "-Managers", JSON.stringify(data));
                    alert($.jStorage.get($rpt.pageIdentifier + "-Managers"));
                },
                error: function (jqXhr, textStatus, errorThrown) {
                    alert("fail");
                }
            });

这是GetManagers函数>>

[OperationContract]
        [WebGet(ResponseFormat = WebMessageFormat.Json)]
        public List<User> GetManagers(long[] managementIds)
        {
            IList<User> allUserList = (new UserBiz()).GetAllByUserByTypeAndState(2, 3);
            List<User> list = (from v in allUserList where v.Active == true orderby v.FullName ascending select v).ToList();
            var finalUserList = (from item in list
                                 let sameManList = (from v in item.Management
                                                    where managementIds.Contains(v.Id)
                                                    select v.Id).Distinct().ToList()
                                 where sameManList.Count > 0
                                 select item).ToList();
            return finalUserList;
        }

但是,当它没有转到GetManagers函数,而是返回"error 401"("Unauthorized")。知道为什么会发生这种事吗?


编辑

感谢大家的回复。正因为如此,我检查了问题不是javascript函数也不是ajax配置,而是GetManagers()函数(或者我缺少的一些配置)有什么想法吗?

Ajax在jQuery中返回错误401(“未授权”)

尝试将[HttpPost]属性添加到您正在调用的方法中。并将脚本中的类型:"GET"更改为类型:"POST"。也许这会有所帮助。它对我有效。