Разбор XML с JQuery не работает

0

У меня есть следующий 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...

  • 0
    измените обработчик ошибок на error: function (jqXhr, status, error) { alert(status + ':' + error + ':' + jqXhr.responseText) } и посмотрите фактическую ошибку, которая error: function (jqXhr, status, error) { alert(status + ':' + error + ':' + jqXhr.responseText) }
  • 0
    Спасибо, ошибка, которую он выдает в Chrome, это error:: and error:Error:Access is denied. :undefined в IE Я переместил файл XML в ту же папку, что и страница, и теперь он работает в Firefox, но больше ничего ...
Показать ещё 18 комментариев
Теги:
xml-parsing

1 ответ

1

Как выяснилось, это была проблема с нарушением правил Same Origin Policy, где файлы были загружены с локального жесткого диска (файл://протокол).

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

  • 0
    Отлично спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню