【发布时间】:2015-09-04 04:17:00
【问题描述】:
我对基于 SharePoint 2013 的旅行工具有疑问。
此工具包含不同的内容类型 - 所有内容类型都在其特定列表中(旅行请求、乘坐火车、航班等)。有两个主要群体正在使用此工具:员工(贡献)和管理人员(完全控制)。 在 homepage.aspx 上,我们有一个带有自定义 HomePageNewItem 按钮和旅行请求的 ListView 的 ScriptEditorWebpart。当用户点击自定义按钮时,会通过 REST API 创建一个新的 ListItem,并显示当前创建的 ListItem 的 EditForm.aspx。
有什么问题?
这对管理人员来说效果很好(完全控制)。当员工尝试创建 ListItem 时,会出现以下错误消息:HRESULT: 0x80131904(从 REST API 返回)。当员工访问某些列表时,也会发生同样的情况。 ListView 不显示,但有同样的错误信息。
一些附加信息
- SQL 数据库的所有分区都有足够的存储空间
- 当员工使用标准的“新项目”按钮时,一切 工作得很好(ListView 除外)
- 当员工移动到管理人员组时,所有 工作得很好
- 所有列表都设置了正确的权限
- 这在一周前有效,并且在 代码,只有网站的一些自定义,例如主页.aspx)
其他提示
这可能与网站定义有关吗?
创建列表项的函数
function createListItem(listName, newItem, success) {
var itemType = getItemTypeForListName(listName);
newItem.__metadata = { "type": itemType }
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items",
type: "POST",
contentType: "application/json;odata=verbose",
data: JSON.stringify(newItem),
headers: {
"Accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data) {
success(data);
},
error: function (data) {
var errorMessage = JSON.parse(data.responseText).error.message.value;
var statusId;
statusId = SP.UI.Status.addStatus("Hoppla:", errorMessage);
SP.UI.Status.setStatusPriColor(statusId, "Blue");
setTimeout(function () { SP.UI.Status.removeStatus(statusId); },10000);
}
});
}
function getItemTypeForListName(name) {
return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
}
提前致谢 本杰明
【问题讨论】:
标签: sql rest listview sharepoint hresult