javascript - 在没有服务器端、silverlight、DBC 等的情况下处理 SharePoint Intranet 跨域的最佳方法

标签 javascript sharepoint sharepoint-2010 cross-domain intranet

我在 Microsoft 内部 SharePoint 网站上工作,我需要从跨域 SharePoint 网站中提取列表数据。

出于各种原因,我不想使用 Silverlight,而且目前无法实现业务数据连接。

是否有一种简单的方法可以使用 JavaScript 或类似的东西来完成此任务?

最佳答案

简单?”不完全是。鉴于您的要求,尤其是“没有服务器端”,这是不可能的。

但是,如果您可以放弃该要求,则可以通过几个选项来启用跨域请求。

CORS

decent support对于Cross-Origin Resource Sharing对于 XMLHttpRequest和微软的 XDomainRequest .不过,这将要求远程服务器在响应中包含正确的 header ,以允许您的源/域发出请求。

<% Response.AddHeader("Access-Control-Allow-Origin", "*") %>

JSONP

一个常见的选项是 JSONP ,它将资源加载到 <script> 中用callback具有全局函数名称的参数。由于 JSON 基于 JavaScript 文字,因此不会有相同的浏览器支持问题,但远程服务器必须知道如何构造输出并且它限于 GET。请求。

// <script src="http://other.dom/resource?callback=loadResource"></script>

loadResource( [ {"id": 1, "name": "foo"}, {"id": 2, "name": "bar"} ] );

服务器端代理

如果您请求的远程服务器不能(或不会)调整为支持跨域请求,您几乎只能在服务器上创建服务器端代理。

一般模式在 AjaxPatters.org 中描述。并且可以找到许多 .NET 实现,包括 John Chapman'sCross-Domain Proxy项目。

关于javascript - 在没有服务器端、silverlight、DBC 等的情况下处理 SharePoint Intranet 跨域的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879371/

相关文章:

javascript - Angular 路由问题 - ionic header 未在选项卡中更新

javascript - 将列内容与单元格右侧对齐 React MUIDataTable

c# - Sharepoint Web 部件中的多行文本框

c# - 在 ASP.net 中使用资源作为 HTML 元素的属性

javascript - 继承关联 : set[Models] adds new models instead of associating existing ones

javascript - 检查页面是否使用 POST 获取

sharepoint - 如何让SharePoint接受文件名中带有特殊字符的附件?

c# - 从 URL 链接获取名称的正则表达式

sharepoint-2010 - SP2010 混合身份验证,窗口和表单,均针对 AD

javascript - $(this).addClass() 不起作用