簡體   English   中英

是否可以從Sharepoint外部使用Java腳本調用Sharepoint REST API?

[英]Is it possible to call Sharepoint REST API with Javascript from outside of Sharepoint?

我在Sharepoint中有一個列表,我想創建一個顯示該列表內容的外部網頁。 我想使用Javascript或PHP對Sharepoint執行REST調用。

我已經閱讀了有關REST api的信息,但仍然不知道是否可以在Sharepoint之外使用它。 有經驗的人嗎?

由於跨域安全性的限制,您不能直接從SharePoint外部調用SharePoint的REST API。

一種替代方法是使用iframe顯示SharePoint頁面,將需要直接與REST API通信的JavaScript放在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"/>

在內嵌在iframe中的頁面上運行的JavaScript可以調用parent.postMessage(data,url)將數據發送到托管頁面。 (第二個參數必須與托管頁面的來源相匹配,以確保安全。)

要在主機頁面上偵聽並響應數據的接收,請添加事件偵聽器以在“消息”事件上觸發。

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

您可以使用查詢字符串參數(用於初始配置)或其他postMessage調用(用於雙向通信)將其他詳細信息發送到iframe中嵌入的頁面。

從托管頁面向iframe中的嵌入式窗口發送消息類似於在另一個方向上發送消息:區別在於,您需要獲取對iframe的contentWindow屬性的引用,然后在其上調用postMessage

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM