2017-03-21 6 views
0

J'essaie d'intégrer mon analyseur ANTLR4 dans l'éditeur de texte CodeMirror. Lorsque j'ajoute la ligne suivante dans mon fichier html:Utilisation de l'analyseur ANTLR dans CodeMirror

var antlr4 = require('antlr4/index'); // index is an ANTLR runtime file 

Je reçois des erreurs suivantes dans Chrome:

Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///home/enes/Desktop/git/text_editor_mirror/antlr4/index.js'. 
at require (file:///home/enes/Desktop/git/text_editor_mirror/lib/require.js:179:10) 
at file:///home/enes/Desktop/git/text_editor_mirror/index.html:411:16 

XMLHttpRequest cannot load file:///home/enes/Desktop/git/text_editor_mirror/antlr4/index.js. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource. 

Alors, comment puis-je résoudre ce problème?

Répondre

0

Cela se produit parce que le navigateur tente de le récupérer à partir du système de fichiers local (file:/// entraînera une erreur). Vous devez servir des fichiers js (fichiers d'exécution antlr et fichiers js générés également) à partir d'un serveur (http://). Python-Flask peut être utilisé pour héberger facilement des fichiers js sur un serveur.

Suivez le lien pour servir des fichiers en utilisant Flask
http://flask.pocoo.org/docs/0.12/api/#flask.send_from_directory

Les navigateurs ne permettent pas les scripts chargés à partir du système de fichiers local pour exécuter des sites Web sécurisés le long. Donc, pour éviter cela, vous devez appeler des scripts d'un serveur. Si le serveur local ne vous aide pas, vous pouvez envoyer ces scripts à Github et les appeler en utilisant le service CDN comme Gitraw.