Obtention d'une erreur: "Uncaught TypeError: Impossible de lire la propriété 'length' of indefined"

Je suis en mesure d'obtenir une réponse de wsdl à l'aide de mon code côté client en vérifiant que chrome dev tool feed récupère le succès et que divers champs comme objid , personid , personname , persongroup s'affichent dans la console chrome dev. Mais la récupération des resultset est affichée avec l'erreur

Uncaught TypeError: Impossible de lire la propriété 'length' of undefined "

Je n'ai besoin que de personne et nom à afficher

Main.js

 currentPage = {}; currentPage.init = function(){ WL.Logger.debug("MainPage :: init"); }; function validate(){ var username=$('#username').val(); var password=$('#userpwd').val(); busyIndicator.show(); var params = { "process": {"username":username,"userpwd":password} }; var invocationData = { adapter : 'SoapAdapter1', procedure : 'userlogin_ep_process', parameters : [params] }; //{"process":{"username":"$('#username').val()","userpwd":"$('#userpwd').val()"}} WL.Client.invokeProcedure(invocationData,{ onSuccess : loadFeedsSuccess, onFailure : loadFeedsFailure }); } function loadFeedsSuccess(result){ WL.Logger.debug("Feed retrieve success"); busyIndicator.hide(); alert(result.responseJSON.Envelope.Body.processResponse.PERSON_ID); //alert is priniting the value its working displayFeeds(result.responseJSON.Envelope.Body.processResponse); } function loadFeedsFailure(result){ WL.Logger.error("Feed retrieve failure"); busyIndicator.hide(); WL.SimpleDialog.show("Inquiry", "Service not available. Try again later.", [{ text : 'Reload', handler : WL.Client.reloadApp }, { text: 'Close', handler : function() {} }] ); } function displayFeeds(result){ var ul = $('#mytable'); //here i get length undefined error for (var i = 0; i < result.responseJSON.length; i++) { var li = $('<li/>').html("PERSONID:" +result[i].PERSONID); li.append($('<li/>').html("PERSONNAME:" +result[i].PERSONNAME)); li.append($('<hr>')); ul.append(li); } } 

Index.html

 <label>username</label> <input type="text" id="username"><br><br> <label>password</label> <input type="text" id="userpwd"><br><br> <input type="submit" value="login" onclick="validate();"> <ul id="mytable"></ul> 

La réponse:

 { "Envelope": { "Body": { "processResponse": { "ERROR_CODE": "S", "ERROR_MSG": "Login Successful", "GROUPS_ID": "76721", "PERSON_ID": "309236", "PERSON_LOGIN": "Y", "PERSON_NAME": "Welcome! ashanka", "PERSON_ROLE": "Y", "PERSON_UID": "1014336", "client": "http:\/\/xmlns.oracle.com\/InternetMobile\/AbsManagement\/BPELProcessUserLogin", "xmlns": "http:\/\/xmlns.oracle.com\/InternetMobile\/AbsManagement\/BPELProcessUserLogin" } }, "Header": { "FaultTo": { "Address": "http:\/\/www.w3.org\/2005\/08\/addressing\/anonymous" }, "MessageID": "urn:C9C4DB207D5211E5BF9B25E60F40847D", "ReplyTo": { "Address": "http:\/\/www.w3.org\/2005\/08\/addressing\/anonymous" } }, "env": "http:\/\/schemas.xmlsoap.org\/soap\/envelope\/", "wsa": "http:\/\/www.w3.org\/2005\/08\/addressing" }, "errors": [ ], "info": [ ], "isSuccessful": true, "responseHeaders": { "Content-Length": "1017", "Content-Type": "text\/xml; charset=utf-8", "Date": "Wed, 28 Oct 2015 09:03:42 GMT", "SOAPAction": "\"\"", "X-ORACLE-DMS-ECID": "9e10a9dcf92c80fa:-8e91c30:150a34b187a:-8000-0000000000053e79", "X-Powered-By": "Servlet\/2.5 JSP\/2.1" }, "responseTime": 106, "statusCode": 200, "statusReason": "OK", "totalTime": 122, "warnings": [ ] } 

Il n'y a pas de "responseJSON" dans l'objet que vous avez reçu, et c'est pourquoi l'erreur échoue sur "length" est indéfinie: for (var i = 0; i < result.responseJSON.length; i++) . Supprimez responseJSON et utilisez quelque chose comme: Comment obtenir une longueur d'objet ou une approche différente.