Ошибка Contextinfo в размещенной надстройке sharepoint office 365 с заголовками списка получения веб-части
У меня есть размещенная в SharePoint надстройка, написанная в Visual Studio 2013, которая имеет веб-часть, развернутую на сайте SharePoint Office 365. Веб-часть прекрасно отображается на странице, но когда я пытаюсь получить заголовки списков с сайта, я получаю ошибку о contextinfo.
Я установил AppManifest.xml чтобы иметь следующие разрешения
Область Применения: Web
Разрешение: Управление
Вот код скрипта в файле web part .aspx
$(document).ready(function () { hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl')); appweburl = decodeURIComponent(getQueryStringParameter('SPAppWebUrl')); loadDependentScripts(); }); // Function to retrieve a query string value. // For production purposes you may want to use // a library to handle the query string. function getQueryStringParameter(paramToRetrieve) { var params = document.URL.split("?")[1].split("&"); var strParams = ""; for (var i = 0; i < params.length; i = i + 1) { var singleParam = params[i].split("="); if (singleParam[0] == paramToRetrieve) return singleParam[1]; } } function loadDependentScripts() { var scriptbase = hostweburl + "/_layouts/15/"; // Load the js files and continue to the successHandler $.getScript(scriptbase + "SP.Runtime.js", function () { $.getScript(scriptbase + "SP.js", function () { $.getScript(scriptbase + "SP.RequestExecutor.js", getHostWebListsUsingREST); } ); } ); } function getHostWebListsUsingREST() { var executor; // although we're fetching data from the host web, SP.RequestExecutor gets initialized with the app web URL.. executor = new SP.RequestExecutor(appweburl); executor.executeAsync( { url: appweburl + "/_api/SP.AppContextSite(@target)/web/lists/?@target='" + hostweburl + "'", method: "GET", headers: { "Accept": "application/json; odata=verbose" }, success: onGetHostWebListsUsingRESTSuccess, error: onGetHostWebListsUsingRESTFail } ); } function onGetHostWebListsUsingRESTSuccess(data) { var jsonObject = JSON.parse(data.body); var lists = jsonObject.d.results; var listsHtml = $.each(lists, function (index, list) { $('#lists').append(list.Title + "(" + list.ItemCount + ")<br />"); }); } function onGetHostWebListsUsingRESTFail(data, errorCode, errorMessage) { alert('Failed to get host site. Error:' + errorMessage); }
HTML ничего особенного
<body> <div> <p id="message"> <!-- The following content will be replaced with the user name when you run the app - see App.js --> initializing... </p> </div> <div> <p id="results"> </p> </div> </body>
Ошибки, которые я получаю, заключаются в следующем :sp.runtime.js'
Необработанное исключение в строке 2, колонка 60952 in https://myhost.sharepoint.com/_layouts/15/sp.runtime.js
0x800a138f - ошибка выполнения JavaScript: не удалось задать свойство 'https://myhost.sharepoint.com/sites/Developer/Ven/TestSharePointAppPart/Pages/TestSharePointAppPart/_api/contextinfo' undefined или null ссылка
И предупреждение из сценария говорит
"Не удалось получить хост-сайт: ошибка: запрещено"
Что я уже пробовал:
Я пробовал разные разрешения в AppManifest.xml и у меня есть разрешения на мой логин, чтобы создавать что-либо на сайте.