Je suis en train d'apprendre à utiliser les nouvelles fonctions Cloud pour Firebase et le problème que je rencontre est que je ne peux pas accéder à la fonction que j'ai écrite par le biais d'une requête AJAX. Je reçois l'erreur "No 'Access-Control-Allow-Origin'". Voici un exemple de la fonction que j'ai écrite :
exports.test = functions.https.onRequest((request, response) => {
response.status(500).send({test: 'Testing functions'});
})
La fonction se trouve dans cette url : https://us-central1-fba-shipper-140ae.cloudfunctions.net/test
La documentation de Firebase suggère d'ajouter un middleware CORS à l'intérieur de la fonction, j'ai essayé mais cela ne fonctionne pas pour moi : https://firebase.google.com/docs/functions/http-events
C'est comme ça que j'ai fait :
var cors = require('cors');
exports.test = functions.https.onRequest((request, response) => {
cors(request, response, () => {
response.status(500).send({test: 'Testing functions'});
})
})
Qu'est-ce que je fais de mal ? J'apprécierais toute aide à ce sujet.
UPDATE :
Doug Stevenson La réponse de l'auteur a été utile. L'ajout de ({origin : true}) a réglé le problème, j'ai également dû modifier response.status(500)
a response.status(200)
ce que j'ai complètement manqué au début.
0 votes
Vous trouverez également un exemple dans la documentation ici
0 votes
J'ai quelques fonctions qui fonctionnent avec la solution fournie mais j'essaie maintenant une nouvelle fonction qui ajoute essentiellement des graphiques ouverts en haut de mon index.html et renvoie l'index.html mis à jour et je n'arrive pas à la faire fonctionner :( je continue à obtenir l'erreur ACCESS-CONTROL---.
2 votes
Envelopper la requête entrante dans cors() comme ci-dessus est la seule chose qui a fonctionné pour moi.
0 votes
Pouvez-vous modifier votre "mise à jour" pour souligner que le middleware cors est nécessaire ? Cela fera gagner du temps à certaines personnes.