Лучший способ работать с кросс-доменом в интрасети SharePoint без серверной части, Silverlight, DBC и т. Д. - PullRequest
7 голосов
/ 24 октября 2011

Я работаю на внутреннем сайте SharePoint в Microsoft, и мне нужно получить данные списка с междоменного сайта SharePoint.

Я не хочу использовать Silverlight по разным причинам, и в настоящее время подключение к бизнес-данным невозможно.

Есть ли простой способ использовать JavaScript или что-то подобное для этого?

Ответы [ 2 ]

10 голосов
/ 24 октября 2011

" Simple ?"Не совсем.Учитывая ваши требования, в частности « без серверной стороны », это невозможно.

Однако, если вы можете отказаться от этого требования, у вас есть несколько вариантов включения междоменного домена.запросы.

CORS

Есть достойная поддержка для Обмен ресурсами между источниками для XMLHttpRequest и Microsoft XDomainRequest.Тем не менее, для этого потребуется, чтобы удаленный сервер включил в ответ надлежащие заголовки, чтобы ваш источник / домен мог выполнить запрос.

<% 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, включая Джона Чепмена и Междоменный прокси проект.

0 голосов
/ 24 октября 2011

Вы можете использовать JQuery для получения данных из списка SharePoint. См. Эту статью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...