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

使用sap.ui.model.odata.v2.ODataModel调用OData服务报错求助

UI5 OData V2模型调用服务报错问题
  • 背景:作为SAP UI5和OData新手,已创建OData服务并在应用onInit函数中调用。使用旧版sap.ui.model.odata.ODataModel可正常获取后端表数据,但改用sap.ui.model.odata.v2.ODataModel调用同一服务时出现错误。
  • 代码示例:
var oModel = new sap.ui.model.odata.v2.ODataModel("http://services.odata.org/Northwind/Northwind.svc/");
  • 错误信息:

SyntaxError: Unexpected token 'V', "Validierun"... is not valid JSON sap.ui.model.odata.ODataMessageParser

  • 错误截图:错误信息

问题原因与解决办法

这个错误核心是OData V2模型默认期望后端返回JSON格式,但当前请求得到的是非JSON内容(比如XML格式的错误提示或响应)。

具体解决步骤:

  1. 强制指定JSON格式请求头
    初始化V2模型时,通过配置参数添加Accept头,明确要求后端返回JSON格式:
var oModel = new sap.ui.model.odata.v2.ODataModel({
  serviceUrl: "http://services.odata.org/Northwind/Northwind.svc/",
  headers: {
    "Accept": "application/json;odata=verbose"
  }
});
  1. 验证服务兼容性
    确认你的OData服务符合OData V2规范,Northwind官方服务本身支持V2,但自建服务需检查是否开启了JSON输出配置。
  2. 排查跨域问题
    如果是本地开发场景,浏览器跨域限制可能导致请求被拦截,返回非JSON的错误页面。可以通过以下方式解决:
    • 配置UI5的代理服务器转发请求
    • 在后端服务中开启CORS(跨域资源共享)支持

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:05:05