2017-10-11 4 views
0

Je souhaite activer les cors pour une fonction google cloud. Mon index.js est:Impossible d'ajouter des cors à la fonction gcp

const cors = require('cors'); 

exports.helloWorld = function helloWorld(req, res) { 
    if (req.body.message === undefined) { 
    console.log('No message defined!'); 
    } else { 
    console.log(req.body.message);  
    } 

//res.set('Access-Control-Allow-Origin', "*"); 
//res.set('Access-Control-Allow-Methods', 'GET, POST'); 

    cors(req, res,() => { 
     console.log('inside cors'); 
     res.status(200).send(users); 
    }); 
    //cors(res.status(200).send(users)); 

//res.status(200).send(users); 
    //res.end(); 
}; 

et mon package.json:

{ 
    "name": "sample-http", 
    "version": "0.0.1", 
    "dependencies": { 
    "cors": "2.8.4" 
    } 
} 

Basé sur le lien this J'ai essayé d'ajouter manuellement les en-têtes, mais sans succès. J'ai également essayé la solution this mais sans l'emporter.

Qu'est-ce que je fais mal?

Répondre

0

La solution est d'ajouter les en-têtes suivants:

res.set('Access-Control-Allow-Origin', '*'); 
res.set('Access-Control-Allow-Methods', 'GET, POST'); 
res.set('Access-Control-Allow-Headers', '*'); 

Le fil sous forme de solution this ne suffisait pas pour moi. J'ai toujours reçu des erreurs: Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers in preflight response

En ajoutant la ligne res.set('Access-Control-Allow-Headers', '*'); cela a fonctionné.