У меня есть следующий XML файл, который я пытаюсь проанализировать...
<?xml version="1.0" encoding="utf-8"?>
<root>
<post>
<heading>Test Post, Please Ignore</heading>
</post>
</root>
И JQuery, который я использую рядом с ним...
<script>
$(document).ready(function(){
$.ajax({
type:"GET",
url:"postList.xml",
dataType:"xml",
success:function(xml) {
$(xml).find("post").each(function() {
var pTitle = $(this).find("heading").text();
$("#output").append("<p>" + pTitle + "</p>");
});
},error: function() {
alert("An error occurred while processing XML file.");
}
});
});
</script>
Каждый раз, когда я просматриваю свой сайт в broswer, он выдает ошибку (тот, который записывается в JQuery). Я пробовал это в IE, Firefox и Chrome и использовал W3C XML Validator, чтобы убедиться, что все это проверено, но пока оно не работает.
Из того, что я могу сказать, это должно работать, и все же это не так. Вместо этого он выдает ошибку каждый раз, а моя страница остается пустой <div id="output">
. Любая помощь приветствуется!
EDIT: я переместил файл XML в ту же папку, что и файл html, и обновил URL-адрес, чтобы иметь правильный адрес. Теперь он работает в Firefox, но все еще бросает и ошибки в IE и Chrome...
Как выяснилось, это была проблема с нарушением правил Same Origin Policy, где файлы были загружены с локального жесткого диска (файл://протокол).
Поскольку предполагается, что проект будет развернут на веб-сервере, предлагаемое исправление заключается в использовании локального веб-сервера для размещения файлов, чтобы можно было устранить те же самые нарушения политики происхождения.
error: function (jqXhr, status, error) { alert(status + ':' + error + ':' + jqXhr.responseText) }
и посмотрите фактическую ошибку, котораяerror: function (jqXhr, status, error) { alert(status + ':' + error + ':' + jqXhr.responseText) }
error::
anderror:Error:Access is denied. :undefined
в IE Я переместил файл XML в ту же папку, что и страница, и теперь он работает в Firefox, но больше ничего ...