Отказано в доступе с использованием Javascript / jQuery для локального файла - PullRequest
3 голосов
/ 17 мая 2010
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 и отобразить его в div helpdiv. Теперь вот кикер, если я беру те же файлы и копирую их в inetpub на моем ПК и загружаю их как http://localhost/hello.html, это прекрасно работает.

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

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

Ответы [ 2 ]

1 голос
/ 17 мая 2010

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

0 голосов
/ 17 мая 2010

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

Вам необходимо либо разработать сайт, либо использовать свой локальный сервер.

...