1

新手来了 我有一个关于 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 函数时,它返回“错误 401”(“未授权”)。知道为什么会这样吗?


编辑

谢谢大家的回复。多亏了这一点,我检查了问题不是javascript函数也不是ajax配置,而是函数(或我缺少的一些配置)。GetManagers()有任何想法吗?

4

1 回答 1

0

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

于 2013-10-08T12:15:44.670 回答