#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 как я могу получить доступ к междоменной сети?