繁体   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