Table des matières
Problème CORS
Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead[Learn More] fquery.min.js:2:21 Source map error: request failed with status 404 Resource URL: https://arn-fai.net/nav/lib/jquery/fquery.min.js Source Map URL: fQuery-1.10.2.min.map[Learn More] Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://arn-fai.net/nav/nav.json. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).[Learn More]
Lecture : https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin
Il semblerait que ça dise de configurer arn-fai.net
Et de mettre à jour:
Header set Access-Control-Allow-Origin 'origin-list'
Proof of concept
Je teste la ligne
Header set Access-Control-Allow-Origin “*”
dans /var/www/site-drupal/.htaccess
Résultat: tout le site arn-fai.net est en erreur 500 !
Pourquoi ?
Je change en :
<IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule>
Et le site remarche.
Conclusion: le module mod_headers.c
manque !
Je rajoute :
root@web:/home/jmlibs# a2enmod headers root@web:/home/jmlibs# systemctl restart apache2
Et https://vps.arn-fai.net/ fonctionne toujours (sans erreur 500)
et https://vps.arn-fai.net/ a bien le menu qui s'affiche
avec les infos suivantes :
Source map error: request failed with status 404 Resource URL: https://arn-fai.net/nav/lib/jquery/fquery.min.js Source Map URL: fQuery-1.10.2.min.map[Learn More] SecurityError: The operation is insecure. nav.js:169
Solution
Maintenant, on va faire une config sérieuse.
Restreindre au site vpn.arn-fai.net
Si je mets
Header set Access-Control-Allow-Origin “https://vps.arn-fai.net”
C'est bon pour https://vps.arn-fai.net/ mais pas pour http://vps.arn-fai.net/
Alors je teste
<IfModule mod_headers.c> SetEnvIf Origin "https://vps.arn-fai.net$" AccessControlAllowOrigin=$0 Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin #Header set Access-Control-Allow-Origin "https://vps.arn-fai.net" </IfModule>
Et c'est pareil
<IfModule mod_headers.c> SetEnvIf Origin "http(s)?://vps.arn-fai.net$" AccessControlAllowOrigin=$0 Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin #Header set Access-Control-Allow-Origin "https://vps.arn-fai.net" </IfModule>
C'est bon pour les deux !
Restreindre aux fichiers ressources
<FilesMatch "\.(js|json)$"> <IfModule mod_headers.c> SetEnvIf Origin "http(s)?://vps.arn-fai.net$" AccessControlAllowOrigin=$0 Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin #Header set Access-Control-Allow-Origin "https://vps.arn-fai.net" </IfModule> </FilesMatch>
Et c'est bon.
Solution finale
Je mets ça dans /etc/apache2/sites-enabled/arn-fai.net.conf
au lieu du .htaccess
apache2ctl restart
Et c'est bon.