Проблема CORS с PowerBI API

Я пытаюсь создать встраиваемый токен для отчета, вызывая указанную ниже конечную точку, но это решает проблему CORS.

Не удалось загрузить https://api.powerbi.com/myorg/groups/ / reports. // GenerateToken: ответ на предполетный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'. Следовательно, к источнику "http://localhost:4200" не разрешен доступ. Ответ имел код состояния HTTP 403.

Есть ли какие-либо настройки на панели управления power bi или включить CORS и установить разрешенные источники?


person Unnie    schedule 27.03.2018    source источник


Ответы (2)


у вас не должно возникнуть проблемы с cors, если вы вызвали power api в коде на стороне сервера. Никаких изменений настроек в панели управления powerbi не требуется. Пожалуйста, поделитесь фрагментом кода, если можете.

person Kamalakar    schedule 29.03.2018

CORS - это функция безопасности браузера, которая запрещает ссылки между сайтами. Следовательно, в части PowerBI нет никаких настроек, чтобы исправить это. Ранее мы работали с REST API, но сталкивались с проблемой CORS почти в каждом браузере. Использование подключаемого модуля CORS для Chrome. исправил проблему. Но не стоит ожидать, что каждый пользователь установит плагин на стороне клиента.

В качестве обходного пути мы использовали подход WebAPI, при котором наш клиентский сценарий обращается к конечной точке WebAPI, взаимодействует со службой PowerBI для возврата отчета. Чтобы решить проблему CORS таким образом, добавьте ссылку на System.Web.Cors в файл WebConfig.cs, находящийся в папке App_Start, и добавьте линия config.EnableCors();

В контроллере украсьте метод EnableCors, как показано ниже, и это должно решить вашу проблему:

namespace MyNameSpace.MyControllers
{
    public class MyAPIController : ApiController
    { 
       [HttpPOST]
       [EnableCors(origins: "*", headers: "*", methods: "*")]
       public string getData()
       {
          return "This Works !";
       }
    }
}
person Atulmaharaj    schedule 06.04.2018
comment
Вопрос не связан с тем, что OP не знает, что такое CORS. Упомянутый здесь API является частью службы powerbi, размещенной на сервере Microsoft, а не написан OP. - person Unnie; 06.04.2018