web-dev-qa-db-fra.com

Comment autoriser les requêtes interdomaines dans Apache2

Ceci est mon fichier de configuration. 

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName localhost:80
    DocumentRoot /var/www/XXX
    <Directory />
        Options None
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    <Directory /var/www/qvbn-app-web-ctrl>
        Options FollowSymLinks
        AllowOverride AuthConfig FileInfo
        Order allow,deny
        Allow from all
        Header set Access-Control-Allow-Origin "*"
    </Directory>
    ErrorLog ${Apache_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

Quand j'essaye de recharger Apache2, iT donne l'erreur suivante:

   Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
    Action 'configtest' failed.

Je ne sais pas comment activer CORS. J'ai suivi ceci: http://enable-cors.org/server_Apache.html

7
Prakash Kuma
OS=GNU/Linux Debian
Httpd=Apache/2.4.10

Changement dans /etc/Apache2/Apache2.conf

<Directory /var/www/html>
     Order Allow,Deny
     Allow from all
     AllowOverride all
     Header set Access-Control-Allow-Origin "*"
</Directory>

Ajouter/activer le module

 a2enmod headers 

Redémarrer le service

/etc/init.t/Apache2 restart
17
Amit Vujic

placez les éléments suivants dans le fichier .htaccess du site (dans/var/www/XXX):

Header set Access-Control-Allow-Origin "*"

au lieu du fichier .conf. 

Vous voudrez aussi utiliser 

AllowOverride All

dans votre fichier .conf pour le domaine afin qu'Apache l'examine.

2
drj

Activez d’abord mod_headers sur votre serveur, puis vous pourrez utiliser la directive d’en-tête à la fois dans Apache conf et .htaccess.

1) activer les en-têtes de mod

a2enmod headers

2) configurer l'en-tête dans le fichier .htaccess

Header add Access-Control-Allow-Origin "*"

 Header add Access-Control-Allow-Headers "Origin, x-requested-with, content-type"

 Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
2
piyush

J'ai eu beaucoup de difficulté à obtenir que cela fonctionne. Dummy, n'oubliez pas que l'ancienne page - même pour les sous-requêtes - est mise en cache dans votre navigateur. Peut-être évident, mais effacez le cache de votre navigateur. Après cela, on peut également utiliser Header set Cache-Control "no-store". Cela m’a été utile lors des tests.

1
BobR

Activez mod_headers dans Apache2 pour pouvoir utiliser la directive Header:

a2enmod headers
1
frinux