当前位置: 首页 > Web前端 > HTML

SAPUI5应用OData元数据请求响应分析原理分析

时间:2023-04-02 14:50:25 HTML

上一篇SAPUI5应用OData元数据请求发送原理分析我们了解了SAPUI5应用如何自动发送HTTP请求OData元数据。本文继续学习SAPUI5框架如何解析到达客户端后的元数据请求响应。当响应成功到达客户端时,触发回调函数:如果xhr.readyState不为4,则直接返回。元数据请求的响应头,Content-Type为application/xml:构造一个响应对象:xml元数据的内容存储在xhr.responseText里面。因为statusCode为200,进入成功回调函数:因为response.data为空,调用对应句柄读取:首先获取content-type:从响应头字段中读取Content-Type字段:use;作为分隔符:使用分隔后的第一个元素作为结果:我们自己构造的response对象的body字段,xhr标准对象的responseText:根据mediatype中存储的type获取对应的handler?handler的accept字段必须包含媒体类型中指定的类型:如果handler通过验证,则创建一个读写上下文对象:if(handlerAccepts(handler,cType)){varreadContext=createReadWriteContext(cType,version,上下文,处理程序);阅读上下文。响应=响应;response.data=parseCallback(handler,body,readContext);返回响应.data!==undefined;}这里很有意思,contentType是Application/xml,但是formatQueryString是json格式的:然后根据handler和response解析并将结果存入response对象的data字段。xml元数据解析器:metadataParser:varmetadataParser=function(handler,text){///

解析元数据文档。///此处理程序。///元数据文本。///概念模型的对象表示。vardoc=xmlParse(text);varroot=xmlFirstChildElement(doc);返回parseConceptualModelElement(根)||不明确的;};进入xmlParse方法:可以看到里面使用了DOMParser:DOMParser可以将字符串中存储的XML或HTML源代码解析成DOMDocument。注意:XMLHttpRequest支持从URL可寻址资源中解析XML和HTML,并在其响应属性中返回一个Document。更多Jerry原创文章在这里:《王子熙》: