Разрешение запрещено с помощью JavaScript / jQuery в локальном файле

StackOverflow https://stackoverflow.com/questions/2852265

Вопрос

function publish(text) {
 $('#helpdiv').prepend(text);
}

function get_help(topic) {
  $.get(topic, publish);
}

<p>Hi. <a href="#" onclick="get_help('inline-help.html'); return false;">click here for more help.</a></p>
<div id="helpdiv"></div>

Я унаследовал этот кусок HTML и JavaScript выше (фрайпта). Это будет / будет использоваться в качестве локальной помощи. В настоящее время это онлайн только и работает нормально. Однако, когда я копирую файлы локально, я получаю «Разрешение запрещено» в Internet Explorer, а в Chrome ничего не делают, когда я «щелкнул здесь для получения дополнительной помощи». Что это должно сделать, это загрузить содержание справки от INLINE-HELP.HTML и отобразить его в HelpDIV Div. Теперь вот кикер, если я беру один и те же файлы и скопируйте их на INETPUB на моем компьютере и загрузите их как http: //localhost/hello.html. Это функционирует идеально.

Предположительно, это осторожность, где «локальная» зона не позволяет мне загружать файлы от HD пользователя HD? Но я не совсем уверен, что происходит и хотелось бы понять эту проблему дальше и потенциально придумать обходной путь.

Любое понимание очень ценится.

Это было полезно?

Решение

jQuery's "Get" использует XMLHTTPREQUEST, который не работает на локальных файлах, к сожалению. Если вам действительно нужно быть в состоянии получить локальные данные (или данные из другого домена) асинхронно, вы должны использовать динамические теги скрипта. Однако это означает, что файл данных должен быть переформатирован как данные JSON.

Другие советы

Я не думаю, что ваш браузер позволяет вам запустить JavaScript локально (используя file:/// метод доступа). Но когда вы загружаете это из http://localhost/ Работает нормально.

Вы должны либо разрабатывать на веб-сайте, либо использовать свой сервер localhost.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top