2017-10-11 6 views
0

est ici le problème,demande de jeton d'authentification alfresco avec ajax POST/GET appel (angulaire)

J'essaie d'obtenir un jeton d'authentification de mon serveur communautaire alfresco avec un js script (angulaire 4). La demande semble être bloqué par « en-tête CORS manquant » ...

Le login/mot de passe sont ok puisque je peux essayer l'URL de connexion directement dans mon navigateur et j'obtenir le résultat attendu (xml) comme ceci:

https://www.my-url.com/alfresco/service/api/login?u=username&pw=password

Je reçois cela comme un résultat:

enter image description here

maintenant, je viens à mon application web et je dois récupérer ce billet à partir d'un appel http, comme celui-ci (avec un service angulaire 4):

getTicket(user: User): Observable<boolean>{ 
    let headers = new Headers(); 
    headers.append('Access-Control-Allow-Origin','*'); 
    return this.http.post('https://www.my-url.com/alfresco/service/api/login',{'u':'username','pw':'password'},{headers:headers}).map(response => { 
     console.log('response : '+JSON.stringify(response)); 
    }); 
} 

Je codait le u/pw les variables, j'ai aussi essayé de les nommer « utilisateur » & « mot de passe », et j'ai essayé la méthode GET aussi, mais rien ne change, la seule chose que je reviens est un problème Cors . Résultat dans la console:

OPTIONS XHR https://www.my-url.com/alfresco/service/api/login [HTTP/1.1 200 OK 39 ms]

Requête Cross-origin Bloqué: la même origine politique lecture de la interdit ressource distante ... Motif: en-tête CORS 'Access-Control-Allow-Origin' manquant.

Demande de données:

Response Headers : 
Allow: "OPTIONS, GET, POST" 
Content-Length: "0" 
Date : "Wed, 11 Oct 2017 14:37:45 GMT" 
Server: "Apache-Coyote/1.1" 

Request Headers : 
Host : "www.my-url.com" 
User-Agent : "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0" 
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" 
Accept-Language : "en-US,en;q=0.5" 
Accept-Encoding: "gzip, deflate" 
Access-Control-Request-Method: "POST" 
Access-Control-Request-Headers: "access-control-allow-origin" 
Origin: "http://localhost" 
Connection: "keep-alive" 

J'ai aussi essayé de supprimer les en-têtes que je crée manuellement la demande, mais pas d'effet ...

+3

Avez-vous pas CORS dans Alfresco? –

+0

Salut @Sanjay Patel merci pour votre commentaire. Eh bien, je suppose que c'est activé depuis mon http fonctionne dans le navigateur. Btw j'ai fait plusieurs recherches sur comment activer les cors dans alfresco mais je n'ai rien trouvé de clair/pertinent à ce sujet ... Pouvez-vous m'aider à résoudre ce problème? – Julo0sS

+0

Quelle version d'alfresco utilisez-vous? –

Répondre

1

Comment faire pour activer CORS dans V5.2 alfresco? Mettez enablecors-1.0.jar dans le dossier modules/platform.

+0

Ma version d'Alfresco est 5.1.0 (r127059-b7) Cela ne fonctionne pas. J'ai toujours cette erreur "manquant en-tête en réponse" ... Bizarre ... – Julo0sS

+0

Merci pour votre aide, vous m'avez indiqué la bonne direction, j'ai trouvé ceci: https://community.alfresco.com/message/812776 -authentication-json-parse-erreur-avec-reactionjs-using-alfresco-51e-ce-login-reste-api? q = Alfresco% 205.1% 20CORS # comment-813702 et il a résolu mon problème :) – Julo0sS