2017-01-18 39 views
0

私はSharepointにリストを持っており、このリストの内容を表示する外部Webページを作成したいと考えています。 JavascriptまたはPHPを使用してSharepointへのREST呼び出しを実行したいと思います。Sharepointの外部からJavascriptでSharepoint REST APIを呼び出すことはできますか?

私はREST APIについて読んだことがありますが、Sharepoint以外でも使用できるかどうかはまだ分かりません。誰でも経験がありますか?

答えて

0

クロスドメインのセキュリティ制限により、SharePointの外部からSharePointのREST APIを直接呼び出すことはできません。

代わりに、iframeを使用してSharePointページを表示し、JavaScriptをREST APIと直接通信する必要があるJavaScriptをSharePointページに配置し、postMessageを使用して、外部ページとiframe内の埋め込みページ。

いくつかの注意点:IFRAMEとホスティングページ内

  • 両方埋め込みページが同じプロトコルを使用して、HTTPまたはHTTPSされるべきです。
  • SharePointページ(またはSharePoint環境)は、コンテンツをフレームでホストできるように設定する必要があります。

ASPXページを編集するためのSharePoint Designerまたはその他のツールがある場合は、ページをiframeに埋め込むことができるようにページにコントロールを追加できます。 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がホスティングページにデータを送信するためにparent.postMessage(data,url)を呼び出すことができます。

ホストページのデータの受信をリッスンして応答するには、「メッセージ」イベントでトリガするイベントリスナを追加します(この2番目のパラメータは、セキュリティのためにホスティングページの起点と一致する必要があります)。

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

あなたは(双方向通信用)(初期設定用)クエリ文字列パラメータを使用してiframe内に埋め込まれたページまたは追加のpostMessage呼び出しに追加の詳細を送信することができます。ホスティングページからのiframe内に埋め込まれたウィンドウにメッセージを送信

は、メッセージに他の方向に送信することに似ています。違いは、あなたがIFRAMEのcontentWindowプロパティへの参照を取得し、それにpostMessageを呼び出す必要がありますということです。

関連する問題