web-dev-qa-db-fra.com

Erreur: Content-Type n'est pas autorisé par Access-Control-Allow-Headers

Je reçois cette erreur dans Chrome lorsque j'essaie d'envoyer une demande ajax:

Content-Type is not allowed by Access-Control-Allow-Headers

Tout fonctionne bien dans Firefox.

Quelqu'un peut-il m'aider à résoudre ce problème?

50
Vinay Verma

J'ai résolu le problème en ajoutant à la configuration de l'hôte virtuel Apache Web Server les paramètres suivants

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
103
Giulio Roggero

Solution pour PHP:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST,GET,OPTIONS');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');

(Besoin de l'envoyer avant tout autre contenu)

11
BlaM

Configurez CORS (requêtes HTTP intersites) dans le nœud. Pour moi, cela ressemble à ceci:

app.use('/api', function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
  next();
});
3
GentryRiggen

J'ai eu le même problème et je l'ai résolu en ajoutant l'en-tête suivant: Access-Control-Allow-Headers: content-type

2
Van Coding

pour nginx

location / {
    proxy_pass http://localhost:59100;
    proxy_http_version 1.1;
    # proxy_set_header Upgrade $http_upgrade;
    # proxy_set_header Connection 'upgrade';
    proxy_set_header Host $Host;

    # Simple requests
    if ($request_method ~* "(GET|POST)") {
      add_header "Access-Control-Allow-Origin"  *;
    }

    # Preflighted requests
    if ($request_method = OPTIONS ) {
      add_header "Access-Control-Allow-Origin"  *;
      add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
      add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
    }

    # proxy_cache_bypass $http_upgrade;
    # add_header Access-Control-Allow-Origin *;
    # add_header Access-Control-Allow-Headers Content-Type;
}

voir https://distinctplace.com/2017/04/17/nginx-access-control-allow-Origin-cors/

1
dcsan

Pour moi avec PHP, fonctionne localement même si je ne définis que ce paramètre d'en-tête:

header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');

0
Pauls Bebris