Относительная проблема пути в jquery.ajax - PullRequest
0 голосов
/ 20 мая 2019

Я новичок в этом, это может быть простой вопрос.Я изучил достаточно об этом в Интернете.Мне просто нужно больше понимания этой проблемы: я использую это, чтобы получить файл json, который находится на одну иерархию ниже, чем index.html, присутствующий в моей структуре каталогов.Я использую jquery.ajax, как показано ниже:

$.ajax({
  url: "../myFile.json",
  dataType: 'json',
  success: function(result, Status, jqXHR) { 
    MyFunction(result);
  },
  error: function(Status) {
    alert(Status.statusText + ": Wrong input. Please check the file.");
  }
});

Здесь я пытаюсь получить доступ к myFile.json, как показано ниже.Это не работает, и я получаю сообщение об ошибке в Firefox что-то вроде этого

(Блокировка перекрестного запроса: та же политика происхождения запрещает чтение удаленного ресурса ....)

Когда я храню myFIle.json в том же каталоге (или выше иерархии каталогов), где находится index.html, он работает абсолютно нормально.

ПРИМЕЧАНИЕ. Я его нигде не размещаю.Я только что создал простой файл index.html и запустил его на своей машине в Firefox.

Пожалуйста, пролите немного света на эту проблему.Я хочу четкую концепцию того, что здесь происходит.

1 Ответ

1 голос
/ 20 мая 2019

Это та же политика происхождения.Это функция безопасности, и вы можете прочитать более подробную информацию о том, как она вообще реализована в этом ответе .

Большинство браузеров не позволяют вам читать файлы из файловой системы .Это важная функция безопасности, представьте, если вы дважды щелкнули по HTML, атакованному в письме.Браузер сохранит его во временную папку, браузер откроет его, а затем сможет прочитать конфиденциальные данные с других частей вашего жесткого диска и отправить их на сайт злоумышленника.

Firefox немного слабее.Он позволяет вам читать файлы, если они находятся в одном каталоге (или подкаталоге) файла, в котором находится документ HTML.

Перемещая JSON на уровень выше этого каталога, вы перемещаете егообласти браузер доверяет JavaScript для доступа.Не делай этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...