Bonjour,
Je développe une application full JS pour apprendre Node.js et Angular.
D'un côté j'ai une appli Angular qui utilise Grunt (http://localhost:9000), de l'autre une API Node.js qui traite les données (http://localhost:8001).
Je souhaite que l'appli récupère le contenu d'un fichier JSON en faisant un appel au serveur (méthode GET) :
Soit avec le service $http :
Soit en utilisant $resource :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $http.get("http://localhost:8001/blocks")
puis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .factory("Blocks", function ($resource) { return $resource("http://localhost:8001/blocks",{},); });
Code : Sélectionner tout - Visualiser dans une fenêtre à part $scope.blocksList = Blocks.query()
Côté serveur, j'envoie les données lorsqu'on reçoit une requête GET :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 server.get('/blocks', function(req, res){ res.sendfile('data/blocks.json'); });
Lorsque je teste la récupération des données, l'application reçoit bien une réponse avec une en-tête (statut 200), mais le corps de la requête est vide :
Pourtant, lorsque je teste l'API via CURL, je reçoit bien les données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Host: localhost:8001 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0 Accept: application/json, text/plain, */* Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://127.0.0.1:9000/ Origin: http://127.0.0.1:9000 Connection: keep-alive
Réponse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8001/blocks
Est-ce que quelqu'un sait d'où peut venir le problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 HTTP/1.1 200 OK X-Powered-By: Express Accept-Ranges: bytes ETag: "498-1396003136000" Date: Fri, 28 Mar 2014 12:05:59 GMT Cache-Control: public, max-age=0 Last-Modified: Fri, 28 Mar 2014 10:38:56 GMT Content-Type: application/json Content-Length: 498 Connection: keep-alive [ {"id": 0, "title": "Default", "type": "default", "order": 1, "col": 0}, {"id": 1, "title": "My music block 1", "type": "music", "order": 4, "col": 2}, {"id": 2, "title": "My links block 1", "type": "links", "order": 3, "col": 1}, {"id": 3, "title": "My default block 2", "type": "default", "order": 2, "col": 2}, {"id": 4, "title": "My music block 2", "type": "music", "order": 0, "col": 0}, {"id": 5, "title": "My links block 2", "type": "links", "order": 5, "col": 1} ]
Merci,
Romain
Partager