2017-10-08 2 views
0

Je sais qu'il y a un tas de choses sur la façon d'activer CORS dans le noeud/express et ont essayé de les mettre en œuvre, mais sans succès.cors angulaire/noeud + exprès numéro

Ma demande angulaire:

function getPhotos(location) { 
     var url = 'https://api.instagram.com/v1/media/search?lat=' + location.lat + '&lng=' + location.lng + '&access_token=' + ig_access_token; 
     $http({ 
     method: 'GET', 
     url: url 
     }).then(function (response) { 
     console.log("here are the photos: ", response); 
     }, function(err) { 
     console.log("whoops, there is an error: ", err); 
    }); 

et ma configuration du serveur dans le nœud/express: garde

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(methodOverride('X-HTTP-Method-Override')); 

app.use(function(req, res, next) { 
res.setHeader('Access-Control-Allow-Origin', '*'); 
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 
res.setHeader('Access-Control-Allow-Credentials', true); 
next(); 
}); 

app.use(express.static(__dirname + '/public')); 

app.listen(port);` 

mais je encore obtenir cette erreur:

Non « Accès-contrôle- L'en-tête Allow-Origin est présent sur la ressource demandée. L'origine 'http://localhost:8080' n'est donc pas autorisée.

Des idées?

+1

CORS doit être activé sur le serveur qui reçoit la demande. L'activer sur votre serveur Express ne fera aucune différence. – skirtle

+0

Utilisez le package CORS pour Express: https://github.com/expressjs/cors –

Répondre

0

Essayez de faire cela dans votre code angulaire

$http({ 
 
    method: 'GET', 
 
    url: url, 
 
    headers: { 
 
     'Access-Control-Allow-Origin': '*', 
 
     'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT', 
 
     'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept' 
 
    } 
 
    })