SAP HANA XS引擎Odata服务不支持';t让我创建/更新/删除
我有一个SAP HANA XS服务器,带有一些DB表和一个OData服务。我能够连接到OData服务并读取数据。当我试图创建/更新/删除数据时,我得到了SAP HANA XS引擎Odata服务不支持';t让我创建/更新/删除,odata,hana,hana-xs,Odata,Hana,Hana Xs,我有一个SAP HANA XS服务器,带有一些DB表和一个OData服务。我能够连接到OData服务并读取数据。当我试图创建/更新/删除数据时,我得到了403-禁止错误。 实际上,我的用户拥有执行上述所有操作所需的权限(我在HANA Studio中使用SQL命令行创建了数据)。当我对系统用户进行相同的尝试时,我得到了相同的结果。我猜您的OData服务被定义为不允许修改数据 从: 默认情况下,OData服务中的所有实体集和关联都是可写的,也就是说,它们可以通过创建、更新或删除请求进行修改。但是,您
403-禁止错误。
实际上,我的用户拥有执行上述所有操作所需的权限(我在HANA Studio中使用SQL命令行创建了数据)。当我对系统用户进行相同的尝试时,我得到了相同的结果。我猜您的OData服务被定义为不允许修改数据
从:
默认情况下,OData服务中的所有实体集和关联都是可写的,也就是说,它们可以通过创建、更新或删除请求进行修改。但是,您可以通过在OData服务定义中使用禁止
选项设置适当的关键字(创建、更新或删除)来阻止修改请求的执行。以下SAP HANA XS的OData服务定义示例显示了如何防止OData服务公开的表myTable
的任何修改。任何使用创建、更新或删除请求对指示表进行修改的尝试都会导致HTTP响应状态403禁止
如果.xsaccess文件如下所示:
{
"prevent_xsrf": true,
...
}
在修改实体之前,必须获取XSRF令牌。读取实体的工作不需要任何限制
这样的令牌可以通过执行到服务端点的GET来获得,其头部为X-CSRF-token=Fetch
。响应包含如下标题X-CSRF-Token=13DC4988AEAA95…
。如果您现在使用刚获得的令牌执行您的POST,例如POST,它将起作用
{
"prevent_xsrf": true,
...
}