Метод Jquery load() не работает в chrome

#jquery #load

#jquery #загрузить

Вопрос:

 <input type="button" value="Load" id="load" />
  

<div id="file"></div>

 $(document).ready(function(){
  $('#load').click(function(){
   $('#file').load('test.html',function(){
    alert('File loaded');  
   });
  });
 });
  

он отлично работает в Mozilla Firefox… но в Chrome он выдает ошибку «XMLHttpRequest не удается загрузить file:///D:/Tanveer Hussain/Jquery/test.html . Получен неверный ответ. Следовательно, доступ к источнику ‘null’ запрещен», в консоли javscript…

Комментарии:

1. Можете ли вы подтвердить, для чего указан путь test.html ? Находится ли он в папке Jquery, как указано в ошибке?

2. По умолчанию Chrome ограничивает то, что вы можете загрузить с локального жесткого диска. Это работало бы нормально, если бы обе страницы были на веб-сервере. И я думаю, что есть параметр конфигурации Chrome, который отключит эту проверку безопасности.

Ответ №1:

Проблема только в том, что .load () для локальных файлов заблокирован Chrome по соображениям безопасности. Если вы используете его на сервере, он работает, учитывая, что все файлы происходят из одного и того же места.

Чтобы включить рабочую версию локально, попробуйте:

В Mac OS X, довольно Chrome, введите в терминале:

 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --allow-file-access-from-files
  

В Windows, довольно Chrome, введите в командной строке:

chrome.exe —разрешить доступ к файлам из files (Возможно, вам действительно нужен путь… Я так не думаю. Если это так, вам придется найти его самостоятельно.)

В Linux, довольно Chrome, введите что-то вроде этого в терминал:

 /usr/bin/google-chrome --allow-file-access-from-files
  

Ответ №2:

Похоже, вы пытаетесь загрузить локальные файлы, и он будет заблокирован из-за ограничения браузера на междоменный или локальный доступ к файлам

Запустите этот файл с веб-сервера. вы можете использовать простой сервер python

python -m SimpleHTTPServer 8000

открыть в браузере http://localhost:8000/page.html (пример: page.html загружается ли страница ‘test.html ‘)

В противном случае вы можете использовать флаги chrome, как предложено Ekansh Rastogi