jsonrestreactjsalfresco

Authentication JSON parse error with ReactJS using Alfresco 5.1.e CE Login REST API


I'm trying to login with my ReactJS app using the login REST API of Alfresco CE 5.1.e, but I have the next error in the console of my browser:

syntax error json parse unexpected end of data at line 1 column 1 of the json data

This error don't happen with Alfresco CE 4.2.e, and I have an application with React Native and the login it's works with 4.2.e and 5.1.e. I have configured CORS in Alfresco. I suppose which the problem is in ReactJS, I'm use the next code:

api-client.js

function loginAlfresco(user, pass)
{
    return fetch(alfrescoLocal + "api/login",
    {
        method: 'post',
        dataType: 'json',
        body: JSON.stringify(
        {
            username: user,
            password: pass
        })
    })
    .then((res) => res.json())
    .then(data => alert(data))
    .catch(error => alert("Error" + error))
};

Login.js

loginAlfresco() {
     loginAlfresco(this.state.username, this.state.password)
        .then((data) =>
          this.setState({ticket: data})
        ).catch((error) =>
          alert(error)
        )
};

The JSON sent is:

{
   "username":"user",
   "password":"12345"
}

The response in the console of Chrome is:

Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en http://EXTERNAL-IP:8082/alfresco/s/api/login (razón: falta la cabecera CORS 'Access-Control-Allow-Origin').

And the network Chrome:

Request URL: http://EXTERNAL-IP:8082/alfresco/s/api/login
Request Method: POST
Status Code: 200 OK
Remote Address: localhost:8082

Any idea?


Solution

  • The problem was in the Alfresco CORS configuration, I change the "cors-filter-1.9.3.jar" library located in the "tomcat/webapps/alfresco/WEB-INF/lib" folder to a newer version "cors-filter-2.4.jar ", and it was solved.