2014-02-19 2 views
0

У меня есть следующий файл XML, который я пытаюсь разобрать ...Синтаксический XML с JQuery не работает

<?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

изменить обработчик ошибок для 'ошибки: функции (jqXhr, статус, ошибка) { оповещения (состояние + ':' + ошибка + ':' + jqXhr.responseText) } ' и видеть фактическую ошибку, is throw –

+0

Спасибо, ошибка, которую он выбрасывает в Chrome, это 'error ::' и 'error: Error: Access is denied. : undefined' в IE Я переместил файл XML в ту же папку, что и страница, и теперь он работает на Firefox, но ничего больше ... – jamezcharazu

+0

Вы загружаете страницу из пути 'file:'? или у вас есть веб-сервер, с которого вы обслуживаете веб-страницу, используя протокол http/s: ' –

ответ

1

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

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

+0

Отлично, спасибо – jamezcharazu

Смежные вопросы