SAPUI5 - 未触发OData读取回调

时间:2016-04-05 10:29:14

标签: odata sapui5 gateway

我需要从SAPUI5到我的SAP-Gateway进行手动OData调用。 (没有数据绑定)

为此,我使用以下代码:

oModel.read("/ZTestSet"),  
    null,null,false, function(oData, oResponse){
       alert("success");
    },
    function(oError ){
       alert("error");
} 

我在SAP系统上调试了它。我接到了电话,并在et_entityset中填写了所需的数据。

问题是,没有任何函数会作为回调触发。既不成功也不错误。 (我在网关或其他人身上找不到任何错误。)

浏览器开发者工具中的响应:

HEADERS:

Request Method:GET
Status Code:200 OK

RESPONSE HEADERS:
cache-control:no-store, no-cache
Connection:keep-alive
content-encoding:gzip
Content-Length:827
Content-Type:application/atom+xml; charset=utf-8
dataserviceversion:2.0
Date:Tue, 05 Apr 2016 12:08:34 GMT
Proxy-Connection:keep-alive
sap-metadata-last-modified:Tue, 05 Apr 2016 10:06:59 GMT

REQUEST HEADERS:
Accept:application/atom+xml,application/atomsvc+xml,application/xml
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US
Cache-Control:no-cache
DataServiceVersion:2.0

RESPONSE:
<feed xmlns="http://www.w3.org/2005/Atom" 
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xml:base="<<ADDRESS>>">
    <id><<ADDRESS>></id>
    <title type="text"><<FUNCTION>></title>
    <updated>2016-04-05T12:08:34Z</updated>
    <author>
        <name />
    </author>
   <<LIST OF ENTRIES>>
</feed>

看起来是一个成功的电话。

2 个答案:

答案 0 :(得分:0)

在成功和错误调用中放置以下debuger行,看看它是否在浏览器中触发。 oModel.read是一个异步调用,意味着它不等待响应,只有在收到来自服务器的响应之后才触发成功或错误方法。所以,如果你在等待,那么看起来似乎没有任何事情发生。

              debugger;

答案 1 :(得分:0)

真是个愚蠢的错误。

我在URL后面关闭了括号。 它应该在最后一个参数后自然关闭。在我的情况下,在错误功能之后。

正确的代码:

oModel.read("/ZTestSet",  
    null,null,false, function(oData, oResponse){
       alert("success");
    },
    function(oError ){
       alert("error");
});