Я являюсь частью команды, разрабатывающей пользовательское приложение SharePoint, использующее AngularJS и отчеты SSRS. По сути, приложение позволяет пользователю выбрать отчет, выбрать набор параметров, а затем просмотреть отчет на сайте/приложении.
Все работало нормально, пока мы не включили панель инструментов отчета. В этот момент отчет перестал отображаться. Видна была только панель инструментов.
Вот что мы делаем:
HTML-код части приложения, которая отображает отчет:
<section class="left-panel report-view-panel ssrsReport show">
<h1>{{CurrentReport.Title}}</h1>
<button class="btn-report-close" ng-click="closeReport()" type="button">Close</button>
<div class="scroll-list">
<figure class="report">
<div class="sample-report">
<div ng-include='CurrentReportURL'></div>
</div>
</figure>
</div>
</section>
В javascript контроллера мы создаем URL-адрес сервера отчетов (CurrentReportURL) примерно так:
Мы говорим ему отобразить отчет, скрыть панель инструментов и скрыть выбор параметров. Это прекрасно работает. Отчет отображается так, как ожидалось.
Однако, изменив URL-адрес на это:
заставляет отображать только панель инструментов. Нет отчета. Если я скопирую тот же URL-адрес и просто открою его в окне браузера, отчет будет отображаться так, как ожидалось.
Я копнул немного глубже и рассмотрел оба сценария, используя Chrome и вкладку Сеть инструментов разработчика Chrome. Было несколько различий в вызовах между URL-адресом в ng-include и URL-адресом в окне браузера. Однако больше всего выделялся POST для RSViewerPage.aspx со всеми параметрами средства просмотра отчетов и отчетов, преобразованными в соответствующие параметры ReportViewer. (Я бы разместил эту реальную ссылку, но SO говорит мне, что для этого мне нужна репутация 10).
Я получаю те же результаты в Chrome и IE10.
Я ищу некоторые рекомендации относительно того, почему версия ng-include не делает POST? Я считаю, что этот POST имеет какое-то отношение к сеансу SSRS, который отслеживается только при включенной панели инструментов, но я действительно не уверен.
Любое руководство будет с благодарностью!