新手在这里。我有一个关于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()
函数(或者我缺少的某些配置)。有什么想法吗?
答案 0 :(得分:0)
尝试在您调用的方法中添加[HttpPost]属性。并更改类型:“GET”在脚本中键入:“POST”。也许它会有所帮助。它对我有用。