J'ai cette erreur lorsque j'envoie la demande postale à API Symfony4 .. J'utilise Fosrestrebundle pour Créer API et Nelmiocrosbundle pour corriger les erreurs CROS, mais aussi j'ai cette erreur:
accès à xmlhttprequest à ' http: // localhost: 8000 / API / Utilisateur / Télécharger A > 'De l'origine' http: // localhost: 4200 'a été bloqué par la stratégie CORS: Non "Accès-Control- Autoriser l'en-tête d'origine est présent sur la ressource demandée. P> blockQquote>
Configuration du code NELMIO: P>
uploadFiles(test) { let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem('token') }); console.log(test); return this._http.post(this.url + '/user/upload',JSON.stringify(test) ,{ headers: headers }) .pipe(map(res => res.json())); }
4 Réponses :
Essayez d'ajouter Access-Control-Abed-Origine Code> Dans Absect_headers Code> Array p>
Ajouter Options Code> au Autory_Methods code> p>
@allow_methods en angulaire !!
Non à la configuration Nelmio_cors dans Symfony. Autory_Methods: ['Get', 'Post', 'Mettez', 'Supprimer', 'Options'] CODE>. Votre navigateur fait une demande de pré-feu à votre API et utilise les options HTTP Verb
Avez-vous essayé d'autoriser tous les en-têtes? allow_headers: ['*'] code>
Je ne suis pas sûr alors. Effacez votre cache de symfony et de navigateur, essayez un autre navigateur, une autre machine ... laissez-nous savoir quand vous trouvez
L'en-tête 'Autorisation' n'est pas autorisé par votre backend. Dans votre application Symfony, vous devez définir un en-tête de réponse contenant: vérifier ce lien: https://developer.mozilla.org/en-us/docs/web/http/headers/access-control-aders < / a> p> p>
Mais comment appliquer cela!
Vous devez essayer comme ceci: utilisez Symfony \ composant \ httpfoundation \ acceptheader; $ ACCEPTHeader = ACCEPTHeader :: Demande de gars (Demande de $-> Headers-> Obtenez ('Accepter')); J'ai réparé le même problème pour Laravel et anguleux. Mais je n'ai aucune idée de symfony.
Si vous voulez simplement jouer avec des paquets et que vous n'avez pas besoin Cors code>, vous pouvez le désactiver avec cet Extension chromée . Une icône verte apparaîtra avec vos extensions activées, vous pouvez donc décocher le partage d'origine transversale activer code> p>