Лучший способ обработки междоменной в интрасети SharePoint без серверной части, silverlight, DBC и т. Д

#javascript #sharepoint #sharepoint-2010 #cross-domain #intranet

#javascript #sharepoint #sharepoint-2010 #междоменная #интрасеть

Вопрос:

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

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

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

Ответ №1:

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

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

CORS

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

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

JSONP

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

Комментарии:

1. Я попробую использовать JSONP и дам вам знать. ИТ-команда, управляющая сайтами, просто не разрешает серверную часть. Silverlight может это сделать, но это намного медленнее и действительно неоптимально для конечного пользователя.

2. Это одно из лучших кратких описаний, которые я видел в одном месте. Спасибо!

3. должен ли я добавить заголовок на страницу сайта по умолчанию?

Ответ №2:

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

Комментарии:

1. боже, я должен более внимательно прочитать сообщения, прежде чем отвечать. Извините за это.

2. @Wesley как я могу получить доступ к междоменной сети?