Я пытаюсь внедрить отчет ssrs в свое приложение Angular. Вот некоторый код: Шаблон:
<div panel-charts style="width:100%:height:100%"
</div>
Директива:
a.directive('panelCharts', function () {
return {
link: function (scope, elem, attrs) {
$(elem).load('http://localhost/Reportserver?/casechart&Title=abc');
}
}
});
Корень моего приложения — localhost: 7063.
Я получаю следующее: XMLHttpRequest не может загрузить http://localhost/Reportserver?/casechart&Title=abc. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, доступ к источнику 'http://localhost:7063' запрещен. В ответе был код состояния HTTP 401.
Я понимаю, что моя проблема связана с CORS. Я добавил это в свой web.config:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
Это не помогло. Но у меня есть кнопка, которая запускает следующее, когда я нажимаю на нее:
<button type="button" style="width:auto;" ng-click="runReport()">
Test
</button>
А это в контроллере:
$scope.runReport = function () {
var win = window.open('http://localhost/Reportserver?/casechart&Title=abc', '_blank');
}
тогда это работает.
Любая идея, как заставить его работать, не нажимая на кнопку?
Спасибо
Изменить 1. Запрос:
Request URL:http://localhost/Reportserver?/casechart&Title=abc
Request Method:GET
Status Code:401 Unauthorized
Remote Address:10.229.232.73:80
заголовок запроса:
Accept:text/html, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Host:localhost
Origin:http://localhost:7063
Referer:http://localhost:7063/Main.aspx
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36