昨晚 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/