Разрешение запрещено с помощью JavaScript / jQuery в локальном файле
-
27-09-2019 - |
Вопрос
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.