J'ai lu l'autre d'une même origine thèmes de politique ici, mais je n'ai pas vu de solutions liées au système de fichiers local.
J'ai une application web (En vrac les sens du terme) qui doit être local servi. Je suis en train de charger une grande quantité de données en une fois que l'utilisateur a chargé la page, en fonction de ce qu'ils font sur la page web. Dans Firefox 3.5 et IE8, je suis en mesure d'utiliser jQuery AJAX() et GetScript() les méthodes pour le faire, mais dans Chrome cela échoue en raison de la Même Origine.
XMLHttpRequest
ne peut pas chargerfile://test/testdir/test.js
. Originenull
n'est pas autoriséby Access-Control-Allow-Origin
.
Ce qui se passe quand je fais quelque chose de simple comme
$.getScript("test.js");
Cela fonctionne parfaitement bien dans IE et Firefox.
Après la lecture d'un tas à ce sujet, j'ai décidé d'essayer d'écrire directement dans l'en-tête du document. Dans la console de Chrome j'ai tapé le texte suivant:
var head = document.getElementsByTagName("head")[0];
var script =document.createElement('script');
script.id = 'uploadScript';
script.type = 'text/javascript';
script.src = "upload.js";
head.appendChild(script);
Cela fonctionne très bien lorsqu'il est collé dans la console - l' <script...test.js</script>
élément est ajouté à la tête, d'évaluer et de contenu chargé dans le DOM.
Je pensais que cela a été un succès, jusqu'à ce que j'ai mis ce code dans un appel de fonction. Exactement le même code, lorsqu'il est appelé à partir d'une fonction, ajoute l'élément à la, mais ne pas évaluer le fichier JavaScript. Je n'arrive pas à comprendre pourquoi. Si j'utilise google Chrome, console pour arrêter l'exécution de la méthode, il est l'ajout de l'élément au et exécuter le code ci-dessus, il n'a pas l'évaluer. Cependant, si j'ai relancer l'exécution et exécuter exactement le même code (en le collant dans la fenêtre de la console), il fonctionne. Je suis à une perte pour expliquer cela. Quelqu'un a abordé ce avant?
J'ai lu sur le suivant de SORTE que les messages, mais ils ne décrivent pas le problème que j'ai:
Des moyens pour contourner la politique de " même origine
XMLHttpRequest Origine null n'est pas autorisé de Contrôle d'Accès-Accès-Permettre de fichier:/// file:/// (sans serveur)
Cross-site XMLHttpRequest
Encore une fois, mon dernier recours est de charger toutes les données sur la page web de charge, Ce qui peut entraîner jusqu'à un délai de 10 secondes lors du chargement de la page web qui est inutile pour 90% de l'application des utilisateurs.
Merci pour toutes les suggestions/solutions de rechange!!!