2017-01-18 2 views
0

У меня есть список в Sharepoint, и я бы хотел создать внешнюю веб-страницу, отображающую содержимое этого списка. Я хотел бы выполнить вызов REST для Sharepoint с помощью Javascript или PHP.Можно ли вызвать Sharepoint REST API с Javascript из-за пределов Sharepoint?

Я читал о REST api, но до сих пор не знаю, можно ли использовать его за пределами Sharepoint. Кто-нибудь с опытом?

ответ

0

Из-за ограничений междоменной безопасности вы не можете вызывать API REST SharePoint непосредственно извне SharePoint.

Альтернативой является использование iframe для отображения страницы SharePoint, установка вашего JavaScript, который должен напрямую связываться с REST API на странице SharePoint, и использовать postMessage для связи между вашей внешней страницей и встроенной страницей в iframe ,

Несколько предостережений:

  • Оба внедренные страницы в IFRAME и странице хостинга должны использовать тот же протокол, либо HTTP или HTTPS.
  • Необходимо установить страницу SharePoint (или среду SharePoint), чтобы разрешить размещение ее содержимого в кадре.

Если у вас есть SharePoint Designer или какой-либо другой инструмент для редактирования страниц ASPX, вы можете добавить элемент управления на страницу, которая позволяет встраивать страницу в iframe.

<% Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<WebPartPages:AllowFraming runat="server"/> 

JavaScript работает на странице, которая вложена в IFRAME может вызвать parent.postMessage(data,url) для отправки данных на странице размещения. (Второй параметр должен соответствовать исходной позиции хостинга для обеспечения безопасности.)

Чтобы прослушивать и отвечать на получение данных на главной странице, добавьте прослушиватель событий для запуска по событию «сообщение».

if(window.addEventListener){ 
    window.addEventListener("message", onMessageReceived); 
}else{ 
    window.attachEvent("onmessage", onMessageReceived); 
} 

Вы можете отправить дополнительные подробности на странице внедренной в IFRAME с использованием параметров строки запроса (для начальной конфигурации) или дополнительных PostMessage вызовов (для двухсторонней связи).

Отправка сообщения на встроенном окно в IFRAME со страницы хостинга похож на отправку сообщения в другом направлении: разница в том, что вам нужно, чтобы получить ссылку на contentWindow имущество Iframe и позвонить postMessage на него.

Смежные вопросы