Я являюсь частью команды, разрабатывающей специальное приложение SharePoint, которое использует отчеты AngularJS и SSRS. В принципе, приложение позволяет пользователю выбирать отчет, выбирать набор параметров, а затем просматривать отчет в пределах сайта/приложения.angularjs nginclude to reportServer url
Все работало нормально, пока мы не включили отчет ToolBar. В этот момент отчет прекратил оказание. Была видна только панель инструментов.
Вот что мы делаем:
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, который отслеживается только с помощью панели инструментов, но я действительно не уверен.
Любое руководство будет принята с благодарностью!
В конечном итоге мы закончили использование iframe. – jeffproe
Да, это сработало для нас. – Christian