点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
能帮我从我的应用程序中调用状态证明服务的实例吗?
我一直在关注本指南以构建服务。 它已经启动并正在运行,并且从SAP API Hub调用它没有任何问题。 这是我在下面保存了ID为" 3"的原始示例有效负载后的201响应:
{" test":" value"}
现在,如果我尝试生成JavaScript代码段,并在自己的应用程序中使用它直接调用该服务,则会收到500错误。 这是我使用的代码:
writeData:function(){ var data = JSON.stringify({ " test":"值" }); var xhr = new XMLHttpRequest(); xhr.withCredentials = false; xhr.open(" POST"," https://blockchain-service.cfapps.us10.hana.ondemand.com/blockchain/proofOfState/api/v1/states/4"); xhr.setRequestHeader(" Content-Type"," application/json"); xhr.setRequestHeader(" Accept"," application/json"); xhr.setRequestHeader(" Access-Control-Allow-Credentials"," true"); xhr.setRequestHeader(" Access-Control-Allow-Origin"," https://这是该服务的500条响应:-approuter.cfapps.us10.hana.ondemand.com"); xhr.setRequestHeader(" Access-Control-Allow-Headers","访问控制允许来源,授权,内容类型"); xhr.setRequestHeader(" Access-Control-Allow-Methods"," GET,HEAD,PUT,PATCH,POST,DELETE"); xhr.setRequestHeader(" Authorization"," Bearer "); xhr.onload = function(){ 如果(xhr.status === 200){ alert("已成功调用API!"); }其他{ alert("调用API失败"); } }; xhr.send(data); }
{"错误":{"代码":500,"消息":" {\" statusCode \":500}-请在 https://help上查看我们的文档。 sap.com/viewer/p/BLOCKCHAIN_APPLICATION_ENABLEMENT /"}}
请注意,这不是403或CORS错误。 我已经解决了。 呼叫确实到达了服务,我可以在仪表板中看到它,如下所示:
我不明白为什么是500? 最糟糕的是,该服务没有提供说明,并且该错误在任何地方都无法跟踪。 我怀疑我的有效负载不正确,但是文档中没有提供任何适合后期操作的有效负载示例。
因此,如果您能提出任何建议或提供示例说明,我将不胜感激 服务应该被调用。
谢谢!
-------------------------------------- ----------------
我已经查看了以下示例,但找不到答案:
https://developers.sap.com/tutorials/blockchain-application-enablement-proofstate.html
https://help.sap.com/viewer/71a0bb282b2144c6b27fefc772394cfb/BLOCK-AIN4
https://github.wdf.sap.corp/区块链/时间戳/blob/master/index.js
(141.5 kB)
安东,
我来自SAP区块链团队,并检查了您的问题。 看来该问题是由令牌交换引起的,该令牌交换以某种方式无法正常工作。
我在您的代码中看到,您传递了用户令牌来检索refresh_token,然后通过刷新令牌来检索服务的技术令牌(因此,技术令牌会随用户数据进行扩展)。 问题是所需的uaa.user范围似乎丢失了。 如果您使用该令牌调用区块链服务,它也想为结构服务进行令牌交换,但由于范围丢失而失败。 (这导致了500错误-我们将在此处改善消息和状态代码)。
目前,对您来说,最简单的选择是仅使用技术令牌而不进行令牌交换来调用服务。
这是一个代码示例:
最好
Christopher
试图直接通过Postman进行调用。 相同结果500,无说明。
POST到 https://blockchain-service.cfapps.us10.hana.ondemand.com/blockchain/proofOfState/api/v1/states/15
您好Rudramani,
我很高兴您没有为此放弃。
是的,您的照片恰好是我的通话顺序 应用程序。 除了一点点外,UI5和Node.js应用之间还有一个应用路由器。 我已经在"状态的区块链证明"服务计划下创建了一个区块链应用程序启用服务实例,并将其连接到Hyperledger。
从Node.js应用程序调用服务失败后,我 ve尝试使用SAP API Hub生成的JavaScript代码段直接从UI5调用它(我的第一篇文章是该问题的一部分)。 我在那里也失败了。 试图直接从Postman调用它-也失败了。 不知道该怎么办。 我所有的呼叫都到达了"区块链应用程序启用服务"实例,但是返回状态500。
我想我将尝试创建另一种类型的BC AE Service实例并尝试使用它。 不知道我的错误在哪里。
谢谢,
安东
一周热门 更多>