Доступ к jQuery.Ajax API SharePoint 2013 запрещен

Я пытаюсь сделать что-то простое - получить информацию о списке из списка SharePoint 2013. Однако мне отказывают в доступе при обработке jQuery Ajax. Я пытался настроить заголовки с помощью объекта заголовков и функции beforeSend, но безуспешно. Вот мой jQuery.Ajax:

$.ajax({
        headers: { // also tried with Authentication
            "Authorization": someBasicCryptedCred,
            "Accept": "application/json; odata=verbose"
        },
        url: "http://spSiteCollection/_api/web/lists/getbytitle('MyList')/items",
        type: "GET",
        success: SuccessProcess,
        error: ErrorProcess
    });

Мое приложение представляет собой простое мобильное приложение MVC.

Я следую этой документации (вместе с некоторыми другими из MSDN, но не могу публиковать более двух ссылок):

http://msdn.microsoft.com/en-us/library/jj870858.aspx http://msdn.microsoft.com/en-us/library/jj163228.aspx


person Kiril Iliev    schedule 28.03.2013    source источник
comment
у вас это на другом домене? пахнет проблемой перекрестного происхождения   -  person Daniel A. White    schedule 28.03.2013
comment
приложение sharepoint находится на том же сервере? Возможно, вы столкнулись с одной и той же политикой происхождения.   -  person Jan Hommes    schedule 28.03.2013
comment
Да, и мое приложение, и сервер SharePoint расположены на одном сервере. Кроме того, я добавил $.support.cors = true; при загрузке страницы, иначе я не получаю ТРАНСПОРТ.   -  person Kiril Iliev    schedule 28.03.2013


Ответы (3)


Возможно, вам нужно значение дайджеста формы, которое вы можете получить с помощью jQuery с помощью

$('#__REQUESTDIGEST').val();

Вы можете получить вызов API rest, с /_api/ContextInfo и получить объект JSON с другими многими полями, кроме значения дайджеста формы.

http://<site url>/_api/contextinfo

С уважением

person rubentnf    schedule 11.12.2017

Я не вижу значения дайджеста формы в вызове, может ли это быть причиной?

X-RequestDigest = значение дайджеста формы

person user2225566    schedule 29.03.2013
comment
msdn.microsoft.com/en-us/ library/ Это похоже на подход, но когда я пытаюсь отправить фиктивный запрос для получения значения дайджеста формы, я снова получаю отказ в доступе - URL-адрес spSiteCollection/_api/web/lists/getbytitle('MyList')/, также пробовал с _api/web/ lists/contextinfo и несколько других комбинаций безуспешно. - person Kiril Iliev; 02.04.2013
comment
user2225566, спасибо за направление. Мне удалось решить проблему, сделав фиктивный запрос POST к точке входа contextinfo службы REST, а затем прочитав значение X-RequestDigest из ответа. - person Kiril Iliev; 18.04.2013

По сути, то, что вы делаете, выглядит так, как будто вы получаете доступ к данным кросс-сайтов из вашего веб-приложения, поэтому предоставьте надлежащее разрешение для вашего приложения через файл "AppManifest.xml". вот и все.

person Rishi Jagati    schedule 29.11.2013