PowerBI API的CORS问题

时间:2018-03-27 17:18:38

标签: powerbi powerbi-embedded

我正在尝试通过调用下面的端点为报告生成一个嵌入式令牌,但这会让我觉得CORS问题。

  

无法加载   https://api.powerbi.com/myorg/groups/ /报告//的generateToken:   对预检请求的响应没有通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:4200'因此是不允许的   访问。响应的HTTP状态代码为403。

电源双仪表板中是否有任何设置或启用CORS并设置允许的来源?

2 个答案:

答案 0 :(得分:0)

如果您在服务器端代码中调用power api,则不应该出现cors问题。 在powerbi仪表板中无需更改设置。 如果可以,请分享代码段。

答案 1 :(得分:-2)

CORS是一种浏览器安全功能,不允许跨站点引用。因此,PowerBI部件上没有任何设置可以修复它。我们之前使用REST API但几乎在每个浏览器上都遇到了CORS问题。使用Chrome CORS plugin修复了此问题。但不能指望每个用户都安装客户端插件。

作为一种解决方法,我们采用了WebAPI方法,其中我们的客户端脚本命中WebAPI端点,与PowerBI服务通信以返回报告。要以这种方式克服CORS问题,请在 App_Start 文件夹下的 WebConfig.cs 文件中添加对 System.Web.Cors 的引用,然后添加第config.EnableCors();

在Controller中,使用EnableCors修饰方法,如下所示,这应解决您的问题:

namespace MyNameSpace.MyControllers
{
    public class MyAPIController : ApiController
    { 
       [HttpPOST]
       [EnableCors(origins: "*", headers: "*", methods: "*")]
       public string getData()
       {
          return "This Works !";
       }
    }
}