Javascript getByTitle()未返回Sharepoint列表
我正在尝试使用ajax调用从Jquery获取几个SharePoint2013列表,如下所示Javascript getByTitle()未返回Sharepoint列表,javascript,jquery,ajax,list,sharepoint-2013,Javascript,Jquery,Ajax,List,Sharepoint 2013,我正在尝试使用ajax调用从Jquery获取几个SharePoint2013列表,如下所示 $.ajax({ url: url + "/_api/web/lists/getbytitle('" + listname + "')/items?$top="+maxReturnedRows, method: "GET", async: false, headers: { "Accept": "application/json; odata=verbose" }, success: function (
$.ajax({
url: url + "/_api/web/lists/getbytitle('" + listname + "')/items?$top="+maxReturnedRows,
method: "GET",
async: false,
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
listArray = data.d.results;
},
error: function (data) {
alert('Error in AJAX-Call to '+listname);
failure(data);
}
})
其中url包含SharePoint站点的url。
这个电话给了我以下的错误
错误代码:-1,System.Collections.Generic.KeyNotFoundException
错误消息:字典中不存在给定的密钥
JSON响应:-
"{\"error\":{\"code\":\"-1, System.Collections.Generic.KeyNotFoundException\",\"message\":{\"lang\":\"de-DE\",\"value\":\"The given key was not present in the dictionary.\"}}}"
我已尝试使用下面的URL在浏览器中调试该问题
<baseurl>+ "/_api/web/lists/getbytitle('" + listname + "')
我收到了带有List Metada的XML响应,但如果我尝试使用下面的URL获取该列表的项目
<baseurl> + "/_api/web/lists/getbytitle('" + listname + "')/Items
我得到500个错误,我怀疑是因为同样的问题
作为另一个选项,尝试使用“guid”获取相同的列表,如下所示
<baseurl>/_api/Web/Lists(guid'xxxxxxxxxxxxxxx')
如果我尝试访问此列表中的项目,则会出现错误500
<baseurl>/_api/Web/Lists(guid'xxxxxxxxxxxxxxx')/Iems
请让我知道,如何解决这个问题
提前感谢列表有两个名称。首次通过UI创建时,输入的名称将用作根URL和标题。然后可以更改列表的标题,但URL保持不变 以下是PowerShell中创建为Cars2并随后重命名的列表的重命名列表属性的外观:
PS C:\> $calcdemo.lists["Cars for sale"] | select title,rootfolder
Title RootFolder
----- ----------
Cars For Sale Lists/Cars2
由于其余的getByTitle使用title属性而不是URL,因此在示例代码中,listname变量必须是Cars for sale,而不是Cars2
此外,如果列表标题包含Unicode字符,则可能需要转义这些字符
url: url + "/_api/web/lists/getbytitle('" + listname + "')/items?$top="+maxReturnedRows,
您应该按guid获取列表项:
例如:
/_api/web/lists('%7B326038AE-D47E-454D-AAD4-5440E6133EF2%7D')
谢谢你,迈克,谢谢你的回答,我很抱歉,但我想我的问题并不明确。我用更具体的错误更新了问题文本。它是什么类型的列表?您列出的API URL在我的列表和项目中运行良好。你有没有在同一网站的其他列表中测试过它?名单的标题/名称是什么?listname变量是一个简单的字符串吗?没有换行符或其他特殊字符。我有一个SharePoint REST测试员可能会有所帮助:我已经用其他列表进行了测试,它正在为他们工作。这只是它不起作用的两个列表。这些是由模板创建的用户定义的列表。这些列表名标题包含下划线,但我用相同的模板创建了新列表,并尝试只提供更简单的名称文本,没有空格,没有特殊字符,但它仍然不起作用。我注意到,在list empty之前,rest服务不会失败并返回空XML,但一旦我将数据放入list中,它就会出现此错误。可能是列出现了问题。试着只带回一两列,看看这是否有效$选择=标题