Обход Chrome Access-control-allow-origin в локальной файловой системе?

Я читал другие темы политики происхождения здесь, на SO, но я не видел никаких решений, связанных с локальной файловой системой.

У меня есть веб-приложение (в широком смысле слово), которые должны обслуживаться на месте. Я пытаюсь загрузить большой объем данных после того, как пользователь загрузил страницу, в зависимости от того, что они делают на веб-странице. В Firefox 3.5 и IE8 я могу использовать для этого методы jQuery AJAX () и GetScript (), но в Chrome это не удается из-за той же политики происхождения.

XMLHttpRequest не может загрузить файл: //test/testdir/test.js . Origin null не разрешено Access-Control-Allow-Origin .

Это происходит, когда я делаю что-то простое, например

$.getScript("test.js");

Это отлично работает в IE и Firefox.

Прочитав об этом, я решил попробовать писать прямо в заголовок документа. В консоли Chrome я набрал следующее:

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);

Это отлично работает при вставке в консоль - элемент добавляется в заголовок, оценивается, и контент загружен в DOM.

Я думал, что это удалось, пока я не вставлю этот код в вызов функции. Тот же самый код при вызове из функции добавляет элемент в файл JavaScript, но не оценивает его. Не могу понять почему. Если я использую консоль Chrome для остановки выполнения в методе, в который добавляется элемент, и запускаю приведенный выше код, он не оценивает его. Однако, если я прекращаю выполнение и запускаю тот же код (вставляя его в окно консоли), он работает. Я затрудняюсь объяснить это. Кто-нибудь имел дело с этим раньше?

Я читал следующие сообщения SO, но они не описывают мою проблему:

Способы обойти политику одного и того же происхождения
XMLHttpRequest Origin null is не разрешено Access-Control-Allow-Origin для файла: /// в файл: /// (без сервера)
Межсайтовый XMLHttpRequest

Опять же, мое последнее средство - загрузить все данные при загрузке веб-страницы. Это может вызвать задержку до 10 секунд при загрузке веб-страницы, которая не нужна 90% пользователей приложения.

Спасибо за любые предложения / альтернативы !!!

28
задан Community 23 May 2017 в 12:26
поделиться