You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps Portal使用JavaScript调用Web API执行HTTP GET查询数据问题

两个API的差异

  • Power Apps Portal暴露的[Portal URI]/_api是Portal官方封装的代理接口,所有请求会先经过Portal的权限校验层,自动应用你配置的表权限、Web角色权限、字段权限,身份体系和Portal当前登录的Contact用户完全打通。
  • Dataverse原生的[Organization URI]/api/data/v9.1/是面向Dataverse后端开发的原生接口,使用独立的Azure AD身份校验体系,和Portal的Contact用户身份不互通,二者不是同一API的不同暴露入口。

数据检索操作实现方案

你不需要调用Dataverse原生API,直接使用已有的身份验证方式调用Portal Web API的GET端点即可,该接口完全支持OData查询语法,和Dataverse原生Web API的查询规则一致。

请求示例:

shell.getTokenDeferred().done(function (token) {
    // 示例:查询前10条客户记录的名称和ID
    fetch(`${window.location.origin}/_api/accounts?$select=name,accountid&$top=10`, {
        method: "GET",
        headers: {
            "Authorization": `Bearer ${token}`,
            "Accept": "application/json",
            "OData-MaxVersion": "4.0",
            "OData-Version": "4.0"
        }
    })
    .then(response => response.json())
    .then(result => {
        // 处理查询结果
        console.log(result.value);
    })
    .catch(error => console.error("查询失败:", error));
});

注意事项

你需要先在Power Apps Portal管理后台完成两个配置才能正常调用GET接口:

  1. 进入Web API设置页,给对应数据表启用读取权限,勾选你需要查询的字段。
  2. 给当前登录用户所属的Web角色配置对应数据表的读取权限,按需配置全局、父级、自有等权限范围。

内容的提问来源于stack exchange,提问作者user210757

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:06:03