postman和部署在 SAP 云平台上的SAP UI5应用发送同样的HTTP请求,为何前者成功,后者失败?

昨晚 Jerry 的技术交流群里,有一位 SAP 从业者提问:

哪位大神在NEO里建过FSM Data API的destination ?我在UI5里面call这个destination的时候 一直是400 bad request,错误信息是 missing [x-client-id, x-client-version],但是我在postman测试这个api的时候 一直是200 OK,哪位大神帮忙解答下,感谢!

这位朋友做了一些分析:

在chrome里可以看到第一个去取fsm token的request是200 ok的,然后我拿着取到的token去data api那里取service call但是一直400error

事后复盘,其实这位朋友已经触碰到了问题根源,只是自己尚未意识到:

不知道是不是因为x-client-id x-client-version是两个custom header param

我的建议:

你能确认postman自动帮你填充的这些header,和你用ui5发送出去之后,在Chrome开发者工具里观察到的header,完全一致?

最后这位朋友通过自己的努力,找到了问题所在,赞一个!!

解决方案

我在neo-app里加了个headerWhiteList 把这两个custom header放进去了。

在SAP 社区上也有朋友在2016年时遇到类似问题,最后发现自己部署到 SAP 云平台的 SAP UI5 应用,发送出去的 HTTP 请求头部自定义字段,因为没有定义在neo-app.json的白名单及headerWhiteList里,因此没有真正发送到服务器端:

https://blogs.sap.com/2016/10/12/sapui5-whitelist-custom-http-headers-webide/

更多Jerry的原创文章,尽在:"汪子熙":

原文地址:https://www.cnblogs.com/sap-jerry/p/14624003.html