Solicitud HTTP NodeJS de AngularJS

Actualmente estoy desarrollando una aplicación web que utiliza AngularJS en la parte frontal y NodeJS en el backend con Express. Sin embargo, he tenido problemas para solicitar mi API de backend desde el frente y espero que puedan ayudarme.

Backend (NodeJS):

app.get('/test', function(req, res) { res.json(200, {'test': 'it works!'}) }) 

Frontend (AngularJS):

 myApp.controller('myController', function($scope, $http) { delete $httpProvider.defaults.headers.common["X-Requested-With"] $http.get('http://localhost:5000/test').success(function(data) { alert('Success') }).error(function(data, status) { alert('Error! ' + status + ' : ' + data) }) }) 

Cuando actualizo la aplicación recibo una alerta que dice: Error! 0 : Error! 0 : sin embargo, cuando solicito el backend con curl o con el navegador, me devuelvo el dictamen de prueba. El frontend parece poder acceder al backend porque lo veo en mi registro de backend que ha hecho una solicitud y ha recibido algo, pero firebug dice que la respuesta está vacía, ¿qué debo hacer?

Muchas gracias, avísame si necesitas más información de mi parte.

Mattias

Asegúrese de que los servidores frontend y backend tengan el mismo origen (protocolo, host y puerto). Si no es así, entonces no recibe respuesta ya que realiza una solicitud ajax de origen cruzado. En este caso, debe enviar un encabezado especial desde su backend para permitirlo:

 Access-Control-Allow-Origin: * 

Puede agregar encabezado de respuesta con el siguiente código:

 res.set('Access-Control-Allow-Origin', '*'); 

res.setHeader (‘Access-Control-Allow-Origin’, ‘*’);

Use res.status(status).json(obj) lugar de res.json(status, obj)