Bonjour à tous.

J’ai créé une API avec symfony et FOSRestBundle et je m’y connecte avec un front end en VueJS. Cela marche bien en local. Mais une fois en ligne, certaines routes me retournent une erreur de CORS.

Access to XMLHttpRequest at 'https://api.domain.com/route' from origin 'https://front-end.com/route' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values 'https://front-end.com, https://front-end.com', but only one is allowed.

Apparemment donc le serveur renvoie l’entête deux fois. Et je n’ai aucune idée de pourquoi car moi je l’ai défini une seule fois.

J’utilise Nelmio pour définir le CORS.

Ma configuration Nelmio dans /config/packages/nelmio_cors.yaml

nelmio_cors:
    defaults:
        origin_regex: true
        allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
        allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
        allow_headers: ['Content-Type', 'Authorization']
        expose_headers: ['Link']
        max_age: 3600
    paths:
        '^/': ~

Dans le fichier .env :

###> nelmio/cors-bundle ###
CORS_ALLOW_ORIGIN='^https?://(front-end.com|localhost|127\.0\.0\.1)(:[0-9]+)?$'
###< nelmio/cors-bundle ###

Cela fonctionne très bien en local mais une fois sur mon hébergement mutualisé, cela me retourne l’erreur indiquée en haut.

Quelqu’un a-t-il déjà rencontré le problème s’il vous plaît ? Merci de m’aider.

2 réponses


Je vais essayer ceci et je vous fais un retour après, ok !

Ok Robert. D'avance merci