IJFleet Ответов: 0

Ошибка 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 и у меня есть разрешения на мой логин, чтобы создавать что-либо на сайте.

0 Ответов