J'utilise actuellement un serveur principal à partir d'un Raspberry Pi (32 Go) et un serveur secondaire (4 To) fonctionnant en tant que serveur de stockage de fichiers. Les deux serveurs exécutent Debian Linux avec Apache2 installé. J'ai réussi à importer PHP la sortie du serveur secondaire au serveur principal avec le code suivant:
Serveur principal:
<?php
$results = file_get_contents('http://example.org:700/handle.php');
echo $results;
?>
Serveur secondaire
<?php
header('Access-Control-Allow-Origin: http://example.org');
//Rest of code
?>
Je suis donc arrivé au problème où le serveur principal pourrait afficher des images et lire des fichiers mp3/wav à partir du serveur secondaire, mais dans mon cas, cela ne fonctionnerait pas avec FLAC (avec un peu de code javascript). Voici quelques informations utiles d'Apache2.conf:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin: "http://example.org"
Header set Access-Control-Allow-Credentials: true
Header set Access-Control-Expose-Headers: "Content-Length"
Header set Access-Control-Allow-Methods: "POST, GET, PUT, OPTIONS, DELETE, HEAD"
Header set Access-Control-Allow-Headers: "Content-Length"
</IfModule>
En ce moment je reçois cette erreur de google chrome:
XMLHttpRequest cannot load http://example.org:700/song.flac. Request header field Range is not allowed by Access-Control-Allow-Headers in preflight response.
Je veux simplement permettre à tout le trafic entre les deux serveurs d'être sécurisé et sans erreur XMLHttpRequest. Y at-il quelque chose que je peux changer dans le fichier de configuration pour que cela fonctionne?
voici comment résoudre ce problème:
Sudo nano /etc/Apache2/Apache2.conf
Mettez dans ce code en bas:
.
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin: "http://example.org"
Header set Access-Control-Allow-Credentials: true
Header set Access-Control-Expose-Headers: "Content-Length"
Header set Access-Control-Allow-Methods: "POST, GET, PUT, OPTIONS, DELETE, HEAD"
Header set Access-Control-Allow-Headers: "Range"
</IfModule>
Activer les en-têtes dans le fichier de configuration: en-têtes Sudo a2enmod
Vérifiez les erreurs faire: Sudo apachectl -k graceful
Service Sudo Apache2 recharger
Service Sudo Apache2 redémarrer
Terminé