Не удается заставить работать метод jQuery ajax
У меня есть 2 html-файла с именами host.html и test.html, которые я так старался, но не могу загрузить файл test.html как содержимое mydiv в host.html, которое я пробовал:
$("#myDiv").load("test.html");
но это терпит неудачу; Затем я попытался использовать следующий метод ajax, чтобы получить файл:
$.ajax({
type: "GET",
url: "test.html",
error: function (xhr, statusText) { alert("Error: " + statusText); },
success: function (msg) { alert("Success: " + msg); }
});
Но, к сожалению, я всегда бью ошибку! И host.html, и test.html включены в одни и те же папки! Что я делаю неправильно?! Пожалуйста помоги
Ура!
1 ответ
Цитирую это: Происхождение null не разрешено Access-Control-Allow-Origin
Origin null - это локальная файловая система, поэтому она предполагает, что вы загружаете HTML-страницу, которая выполняет вызов загрузки, через URL-адрес file:/// (например, просто дважды щелкаете по нему в локальном файловом браузере или аналогичном). Различные браузеры используют разные подходы к применению одной и той же политики происхождения к локальным файлам.
Я предполагаю, что вы видите это с помощью Chrome. Правила Chrome для применения SOP к локальным файлам очень жесткие, он запрещает даже загрузку файлов из того же каталога, что и документ. Так же как и Опера. Некоторые другие браузеры, такие как Firefox, разрешают ограниченный доступ к локальным файлам. Но в основном использование ajax с локальными ресурсами не будет работать кросс-браузерно.
Если вы просто тестируете что-то локальное, что вы действительно будете развертывать в Интернете, а не используете локальные файлы, установите простой веб-сервер и вместо этого протестируйте через http:// URL. Это дает вам гораздо более точную картину безопасности.