【问题标题】:No data on http://services.odata.org/Northwind/Northwind.svchttp://services.odata.org/Northwind/Northwind.svc 上没有数据
【发布时间】:2017-03-09 14:50:25
【问题描述】:

我正在尝试在 SAPUI5 中使用 OData 服务(http://services.odata.org/Northwind/Northwind.svc),但它不返回任何数据

我的控制器代码如下

Dialog.fragment.xml

<core:FragmentDefinition
    xmlns="sap.m"
    xmlns:core="sap.ui.core">
    <SelectDialog
        title="Products"
        class="sapUiPopupWithPadding"
        items="{/CategoryName}"
        search="_handleValueHelpSearch"
        confirm="_handleValueHelpClose"
        cancel="_handleValueHelpClose">
        <StandardListItem
            
            title="{CategoryName}"
             />
    </SelectDialog>
</core:FragmentDefinition>

【问题讨论】:

标签: sapui5


【解决方案1】:

您的模型声明中的 URI 似乎不正确。图像显示分配为

的模型路径
var sServiceUrl = "8080/http/services.odata.org/V2/Odata/Odata.svc";

这是 404 错误的原因,您必须将其更改为

var sServiceUrl = "http://services.odata.org/Northwind/Northwind.svc";

此外,您的 SelectDialog 绑定无效。 Odata metadata 没有名为“CategoryName”的实体集。您必须将其更改为“类别”。

<SelectDialog
    title="Products"
    class="sapUiPopupWithPadding"
    items="{/Categories}"
    search="_handleValueHelpSearch"
    confirm="_handleValueHelpClose"
    cancel="_handleValueHelpClose">
    <StandardListItem

        title="{CategoryName}"
         />
</SelectDialog>

编辑:您似乎正在使用 SAP WebIDE,最好将 services.odata.org 添加为 Destination in HCP

【讨论】:

  • 现在我的控制台出现了同样的错误。错误是:未捕获(承诺)对象{消息:“无法在'XMLHttpRequest'上执行'发送':失败...ces.odata.org/Northwind/Northwind.svc/$metadata'。”,请求:未定义,响应:未定义}未捕获(承诺)对象{xmlDoc:document} sapui5.hana.ondemand.com/sdk/resources/sap/ui/thirdparty/datajs.js?eval:17 XMLHttpRequest无法加载services.odata.org/Northwind/Northwind.svc/$metadata。预检响应具有无效的 HTTP 状态代码 501 加载资源失败:服务器响应状态为 404(未找到)
  • 这是一个跨域错误,因为您从不允许跨域请求的域引用服务。您应该将服务添加为 HCP 中的目的地或在跨域模式下运行浏览器。
  • 我在 Internet Explorer 中运行,在控制台中没有收到任何错误,但对话框不显示任何数据
  • 您可以在 IE 中启用跨域:Internet Explorer > 工具 > Internet 选项。选择安全选项卡并单击自定义级别按钮。在“杂项”>“跨域访问数据源”下的“设置”中,选择“启用”
  • 我建议您为服务添加 HCP 目标,因为这是实现服务的标准方式。可以参考documentationthis SCN 发帖
【解决方案2】:

您将 SelectDialog 的项目聚合绑定到“/CategoryName”集合,但 OData 服务中不存在此集合。我猜你打算将它绑定到 Categories 集合。

【讨论】:

  • 现在我的控制台出现了同样的错误。错误是:未捕获(承诺)对象{消息:“无法在'XMLHttpRequest'上执行'发送':失败...ces.odata.org/Northwind/Northwind.svc/$metadata'。”,请求:未定义,响应:未定义}未捕获(承诺)对象{xmlDoc:文档}sapui5.hana.ondemand.com/sdk/resources/sap/ui/thirdparty/datajs.js?eval:17 XMLHttpRequest无法加载services.odata.org/Northwind/Northwind.svc/$metadata。预检响应具有无效的 HTTP 状态代码 501 加载资源失败:服务器响应状态为 404(未找到)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
相关资源
最近更新 更多