2016-08-09 1 views
0

i ont une URL de service comme ci-dessousauthentification du service OData avec le service de passerelle SAP OpenUI5

http://<hostName>:2020/sap/opu/odata/sap/ZTEST_SRV$metadata 

Quand j'appelle cela du navigateur Chrome je demande le nom d'utilisateur et mot de passe si je donne le nom d'utilisateur et mot de passe, il affichera le XML avec tous les jeux d'entités dans l'URL du service

mais dans le code si je crée l'instance

var model = new sap.ui.model.odata.v2.ODataModel("http://<hostName>:2020/sap/opu/odata/sap/ZTEST_SRV/",true,'username','password'); 

ses spectacles l'erreur 401

comment puis-je résoudre ce problème?

Mon application n'est pas déployée dans repo ABAP, ou Fiori, c'est déployé dans un autre hôte sur Tomcat

+0

Vous avez besoin d'un jeton que vous pouvez obtenir à partir d'un service de SAP sur la Portail SAP - Je pense qu'il existe un service qui peut être activé en fournissant un nom d'utilisateur et un mot de passe. J'essaierais alors de passer cela dans le cadre de l'en-tête. Je ne me souviens pas des détails mais je suis prêt à creuser si vous êtes toujours coincé. – Bernard

+0

Oui, je n'ai pas de solution .. S'il vous plaît pouvez-vous m'aider – chiranjeevigk

+0

demandez à votre personne de base pour l'URL pour le service de ping - devrait être de l'ordre suivant: http: // ********: 8000/sap/bc/ping? sap-client = Bernard

Répondre

0

Je ne suis pas sûr de l'ordre des paramètres; vous pouvez essayer de les fournir sous forme de carte à la place, à savoir

var model = new sap.ui.model.odata.v2.ODataModel("http://<hostName>:2020/sap/opu/odata/sap/ZTEST_SRV/", { 
    json  : true, 
    user  : "<username>", 
    password : "<password>" 
}); 

En outre, comparer les deux demandes (l'authentification de base de travail, ainsi que la demande du code instanciation ODataModel)

Est-ce que votre soutien de service OData V2 ?

+0

Réponse pour le contrôle en amont a un code d'état HTTP non valide 401 – chiranjeevigk

+0

et J'ai aussi essayé avec sap.ui.model.odata.ODataModel – chiranjeevigk

+1

Le 'preflight' indique qu'il peut y avoir une sorte de problème CORS, votre service doit autoriser l'en-tête d'origine de même accès, voir http://www.html5rocks.com/ fr/tutorials/cors/# toc-ajout-cors-support-to-the-server, ou vous pouvez essayer de réinitialiser les en-têtes du service appelant (ce qui remplace effectivement la requête OPTIONS) – Qualiture