我使用将来自SAP Gateway Service的消息映射到OData请求响应的标头的功能。这允许我在客户端接收来自后端的消息,直接在名为SAP-message的http-header
中不幸的是,虽然我可以在Chrome Dev Tools的Odata响应的响应头中看到SAP-message标头,但是当使用OData Model类的getHeaders方法时,不会返回此特定标头
以下是我使用的代码:
oModel.create("/PurchaseContractHeaderCollection", mPayload, {
async : true,
success : jQuery.proxy(function(mResponse) {
// get headers
var mHeaders = this.oModel.getHeaders();
// SAP-message is not mapped in the headers of the OData model
因此,mHeaders不包含任何SAP消息对象
以下是Chrome开发工具中可见的响应标头内容:
content-length:705
content-type:application/json; charset=iso-8859-1
dataserviceversion:2.0
location:http://<server>.<domain>/PurchaseContractHeaderCollection('xxxxxx')
sap-message:{
"code":"ME/887",
"message":"Erreur lors de la reprise des données ExtensionIn pour l'extension",
"severity":"warning","target":"",
"details":[
{"code":"BAPI/000","message":"Exception","target":"","severity":"info"},
{"code":"06/017","message":" créé(e)","target":"","severity":"info"}
]}
server:SAP NetWeaver Application Server / ABAP 731
关于问题所在的任何想法?
答案 0 :(得分:2)
我从SAP那里得到了答案:
ODataModel.getHeaders函数仅用于访问事先由应用程序设置的请求标头和ODataModel本身 - 您无法通过此函数访问响应标头
请改用以下代码:
oDataModel.create(...
{success: function (oData, oResponse) {
// access response headers here: oResponse.headers
...
}});