我正在开发一个SharePoint Hosted Add-In,它将显示项目服务器项目。我正在使用SP.RequestExecutor进行跨域调用。它给我以下错误“无法找到请求ProjectData的资源。”
我在AppManifest文件中给出了Reporting(Project Server)读取权限。以下是我的代码。
$(document).ready(function () {
SP.SOD.executeFunc('SP.js', 'SP.ClientContext', initializePage);
});
function initializePage() {
hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
appweburl = decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
var scriptbase = hostweburl + "/_layouts/15/";
$.getScript(scriptbase + "SP.RequestExecutor.js", getProjectList);
}
function getProjectList() {
var executor;
executor = new SP.RequestExecutor(appweburl);
executor.executeAsync({
url: appweburl + "/_api/SP.AppContextSite(@target)/ProjectData/Projects?$filter=ProjectState eq 'In Progress'&$select=ProjectId,ProjectName&@target='" +
hostweburl + "'",
method: "GET",
crossDomain: true,
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
var jsonObject = JSON.parse(data.body);
alert(jsonObject.d.results);
},
error: function (error) {
alert(error.body);
}
}
);
}
答案 0 :(得分:-1)
无需使用SP.AppContextSite(@target)
。
尝试以下网址 -
url:appweburl +“/ _ api / ProjectData / Projects?$ filter = ProjectState eq '进行中'& $ select = ProjectId,ProjectName“
您的应用的权限应包括“报告的读取权限”。